题目:逆序遍历字符串"ABCDEFG"
实现思路:
使用StringBuilder创建对象,因为String字符串是不可变的,而StringBuilder内部的方法没有被final关键字修饰,所以将s1的字符串内容传给StringBuilder创建的对象ret1和ret2,内容就可以被改变,而s1的内存地址不会改变。
代码实现:
package com.ztt.Demo01;
public class demo17 {
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);
//方式2:
StringBuilder ret2=new StringBuilder();
ret2.reverse();//逆序
System.out.println(ret2);
}
}
输出结果:
GFEDCBA
源码分析:
题目:逆序遍历字符串“我本将心照明月”
实现思路:
方式1:使用逆序遍历
方式2:使用顺序遍历
public class demo08 {
public static void main(String[] args) {
// TODO Auto-generated method stub
String s="我本将心照明月";
//保存逆序字符
String ret="";
//方式1:逆序
for(int i=s.length()-1;i>=0;i--) {
ret=ret+s.charAt(i);
}
System.out.println(ret);
//方式2:顺序
ret="";
for(int i=0;i<s.length();i++) {
ret=s.charAt(i)+ret;
}
System.out.println(ret);
}
}
输出结果:
月明照心将本我
月明照心将本我