Я пытаюсь создать функцию, которая изменяет строку с StackOverflow is the best.
на best. the is StackOverflow
.
Я написал следующую функцию, но не могу исправить пробелы в строке result
. По какой-то причине я получаю best.the is Stackoverflow
. Между best.
и the
нет пробела, а после StackOverflow
есть лишний пробел.
Я мог бы добавить переменную, которая представляет пробел, и использовать if
в крайних случаях, но я считаю, что есть лучший способ сделать это.
Может ли кто-нибудь помочь мне разобраться в этом?
public static void main(String[] args) {
String str = "Stackoverflow is the best.";
String result = change(str);
System.out.println(result);
}
private static String change(String str) {
String result = "";
int i1 = str.length()-1;
int i2 = str.length();
for (i1 = str.length(); i1 >= 0; i1--) {
if (i1 ==0 || str.charAt(i1-1) == ' ') {
result = result.concat(str.substring(i1, i2));
i2 = i1;
}
}
return result;
}
3 ответа
Один из способов, о котором я мог подумать, не используя if's
:
String line = "Stackoverflow is the best.";
String delimeter = " ";
final String[] words = line.split(delimeter);
String reversedLine = "";
for(int i = words.length - 1; i >= 0; i--) {
reversedLine += words[i] + delimeter;
}
// remove the delimeter present at last of line
reversedLine = reversedLine.substring(0, reversedLine.length() - 1);
System.out.println(reversedLine);
Чтобы сгенерировать вывод, как вы упомянули, я подхожу к проблеме следующим образом:
class Solution {
public static void main(String[] args) {
String str = "StackOverflow is the best.";
String[] arr = str.split(" ");
System.out.print(arr[arr.length-1]);
for(int i = arr.length - 2; i >= 0; i--){
System.out.print(" "+arr[i]);
}
}
}
Единственная причина вашей проблемы в том, что вы не добавили пробел после '.' Попробуйте использовать String str = "Stackoverflow is the best. ";
Надеюсь, это помогло ... :)
Похожие вопросы
Новые вопросы
java
Java - это язык программирования высокого уровня. Используйте этот тег, если у вас возникли проблемы с использованием или пониманием самого языка. Этот тег редко используется отдельно и чаще всего используется вместе с [spring], [spring-boot], [jakarta-ee], [android], [javafx], [hadoop], [gradle] и [maven].