用StringBuilder创建对象,因为String字符串有不可变性,而StringBuilder内部方法并没有被final修饰,所以将s1的字符串内容传给StringBuilder创建的对象ret1和ret2,内容就可以被改变,而s1的内存地址不会改变。
public static void main(String[] args) {
String s1 = "ABCDEFG";
//方式1:逆序遍历,追加拼接至可变字符串的尾部
StringBuilder ret1 = new StringBuilder();
for(int i = s1.length()-1;i>=0;i--) {
char c = s1.charAt(i);
ret1.append(c);//当前字符拼接在字符串尾部
}
System.out.println(ret1);
//方式二
StringBuilder ret2 = new StringBuilder(s1);
ret2.reverse();//逆序
System.out.println(ret2);
}
输出:
GFEDCBA
GFEDCBA