public class Main {
public static String reverseWords(String s) {
StringBuilder reversed = new StringBuilder();
int j = s.length();
for (int i = s.length() - 1; i >= 0; i--) {
if (s.charAt(i) == ' ') {
j = i;
} else if (i == 0 || s.charAt(i - 1) == ' ') {
if (reversed.length() != 0) {
reversed.append(' ');
}
reversed.append(s.substring(i, j));
}
}
return reversed.toString();
}
public static void main(String[] args) {
String str = "sky is blue";
String retStr = reverseWords(str);
System.out.println(retStr);
}
}
這是一個成熟的可運行和corect母鹿。 IT顛倒了句子的單詞順序。java substring可以在超出範圍的索引上運行嗎?
但是這一行。
reversed.append(s.substring(i, j));
它將在第一次被稱爲s.substring(7,11)和s是「天藍色」。 所以你可以看到索引7是'b',但是索引11在'e'之後。
在C++中我知道這個事業多畝問題。但是爲什麼在Java中,它很好?如此迷茫。 我檢查了java文檔,它說substring()需要開始和結束索引。 我現在不知道。
需要幫助 感謝
「_JAVA子能夠超出範圍的指數運行_?」不,這「T。 – csmckelvey 2014-11-24 06:02:24