修改字符串中内容:
例如,现在有字符串 str = “Hello”,现在想把这个字符串改成”hello"有以下方法实现
(1)常见方法:
String str = "Hello";
str = "h" + str.substring(1);
System.out.println(str);
(2)特殊方法:
使用 “反射” 这样的操作可以破坏封装, 访问一个类内部的 private 成员
String str = "hehe";
try {
//1.获取到 value 这个字段对应的对象
Field valueField = String.class.getDeclaredField("value");
//2.不能访问(因为 final)
//所以我们需要让 value 对应的对象可以被访问到,强行破坏封装
valueField.setAccessible(true);
//3.根据 valueField 对象和 str 对象,找到 str 中的 value
char[] value = (char[])valueField.get(str);
//4.修改 value
value[0] = 'a';
System.out.println(str);
} catch (NoSuchFieldException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}