String text = "my name is xxx";
String reversed = "";
for (String word : text.split(" ")) {
reversed = word + " " + reversed;
}
reversed = reversed.trim();
Если вызов метода абсолютно не разрешен, это немного запутанно.
String text = "my name is xxx";
char[] letters = text.toCharArray();
char[] srettel = new char[letters.length];
for (int last = letters.length, i = last - 1, j = 0; i >= -1; i--) {
if (i == -1 || letters[i] == ' ') {
for (int k = i + 1; k < last; ) {
srettel[j++] = letters[k++];
}
if (i != -1) srettel[j++] = ' ';
last = i;
}
}
String reversed = new String(srettel);
Это требует немного большего объяснения. Мы читаем входной массив справа налево (i--
), и всякий раз, когда мы находим пробел, или когда мы в конечном итоге ударяемся о левую стену (i == -1
), мы копируем (for k
) слово, которое мы нашли, в выходной массив ([j++] =
). Мы отслеживаем границы слова в last
.