Несколько проблем с вашим кодом:
(1) Почему вы используете цикл for
и выполняете итерацию до s.length()
при длине s
(что 0
в этот момент) не имеет ничего общего с вашей проблемой?
Вам нужен цикл, который не имеет заранее определенного числа итераций, например while (true)
, из которого вы выйдете с break
. [1114 ]
(2) На каждой итерации вы получаете ввод пользователя и сохраняете его в s
, поэтому вы теряете все предыдущие значения.
Вам нужна отдельная переменная для хранения ввода пользователя.
(3) Оператор continue
не нужен как последний оператор в цикле.
(4) Поскольку на каждой итерации вы добавляете «not» в конце, после завершения цикла вы должны удалить последнее «not» из s
(5 ) Не используйте ==
при сравнении строк. Для этого есть метод equals()
.
Это мое решение:
Scanner sc = new Scanner(System.in);
String s = "";
System.out.print("Please enter some Strings: ");
while (true){
String input = sc.nextLine();
if(input.equalsIgnoreCase("stop"))
break;
s += input + " not ";
}
if (s.length() >= 5)
s = s.substring(0, s.length() - 5);
System.out.println(s);