將字串String str= “abc god 中國 java“ 反轉每個單詞 結果: “cba dog 國中
阿新 • • 發佈:2020-12-31
/**
* 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;
}
}
執行結果: