/*** 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;}}
运行结果: