/**
* String str= "abc god 中国 java"(较难) 反转每个单词
结果: "cba dog 国中 avaj"
*
*/
public class Demo2 {
public static void main(String[] args) {
String str= "abc god 中国 java";
//因为是以空格为依据判断的,所以源字符串中,java后没有空格,要是不添加空格
//最后结果avaj会丢失,所以加一个空格变成一个新的字符串
String str1 = str + " ";
//定义一个String变量用于存储单个词组
String word = "";
//定义一个变量用于存储最终结果
String result = "";
/*
* 判断的依据是:当遇到空格时,对单词反转
*/
for (int i = 0; i < str1.length(); i++) {
char ch = str1.charAt(i);
//当单个字符是空格字符时,进行拼接并保存到word的String变量中
if(ch != ' ') {
word += ch;//拿到了正序的单个数组
}else {
//当单个字符不是空格字符时,对其反转并保存到result中
result += reverse(word);
//因为之前为了拿到反转后的java,后面加了空格,所以要取消掉最后面的空格
//即当索引=最大索引的时候,不在添加空格
if(i < str1.length()-1) {
result += " ";
//每次反转完之后,让word置位空,方便后面的反转
word = "";
}
}
}
System.out.println(result);
}
//反转
public static String reverse(String str) {
String result = "";
for (int i = str.length()-1; i >= 0; i--) {
result += str.charAt(i);
}
return result;
}
}
运行结果: