用Java实现I am a student逆序输出为student a am I,不使用split方法和StringBuffer,只用最原始的数组
总体思路:先整体后局部
public class ReverseString {
public static void swap(char[] ch,int a,int b) {
char tmp;
for(;a < b;a++,b--) {
tmp = ch[a];
ch[a] = ch[b];
ch[b] = tmp;
}
}
public static String reverseStr(String str) {
char[] chars = str.toCharArray();
//先逆序整个数组tneduts a ma I
swap(chars,0,chars.length-1);
//再以空格为界逆序每个单词
int start = 0;
for(int i = 1;i < chars.length;i++) {
if(chars[i] == ' ') {
swap(chars,start,i-1);
start = i+1;
}
}
return String.valueOf(chars);
}
public static void main(String[] args) {
String str = "I am a student";
System.out.println(reverseStr(str));;
}
}