Я предполагаю, что это игра-программа String, и мне нужно преобразовать введенную пользователем строку из букв и пробелов / пробелов в знаки вопроса (?). Как бы я пошел об этом?
Я использовал цикл for, и он дал мне то, что я хотел, но я не могу использовать вывод цикла for вне цикла.
System.out.println("Please enter a string of words.");
String userString = scan.nextLine();
userString=userString.toLowerCase();
System.out.println(userString);
int s1 = userString.length();
System.out.println(s1);
for(int a=0;a<s1;a++) {
System.out.print("?");
}
Я ввел «это строка» для userString. Когда я запускаю программу, она выводит: ???????????????? Есть ли способ превратить этот вывод в строку? Или есть лучший способ преобразования значений String в "?"?
5 ответов
Нет необходимости печатать ?
для каждого символа. Вы можете просто заменить каждый символ на ?
и сгенерировать новую строку без печати.
String newUserString = userString.replaceAll(".","?");
Из того, что я понял, я думаю, что вы хотите сохранить "?" , для этого создайте строку var вне цикла for и добавьте '?' в этом.
String temp="";
for(int i=0;i<s1;i++)
{
temp=temp+"?";
}
System.out.println(temp);
Это должно хранить строку в temp.
Java 11 предоставляет метод repeat ().
Ты можешь использовать
“?”.repeat(s1)
внутри sysout
System.out.print(“?”.repeat(s1))
и может удалить цикл for
Это будет повторять? с1 раз.
Заменить все - это правильный ответ, но если по какой-то причине вам пришлось выполнить цикл for, вы можете использовать StringBuilder и добавить a? для каждого символа в строке примерно так:
String userInput = "myString";
StringBuilder myBuilder = new StringBuilder();
for(int x = 0; x<userInput.length(); x++){
myBuilder.append("?");
}
String myNewString = myBuilder.toString();
Но заменить все ответы выше - правильный способ сделать это.
Если вы хотите заменить каждый символ строки на ?
, вы можете попробовать
String newString = userString.replaceAll(".", "?");
"."
- это регулярное выражение, которое будет соответствовать любому символу, кроме новой строки, которую в любом случае ваша строка не будет содержать.
Похожие вопросы
Новые вопросы
java
Java - это язык программирования высокого уровня. Используйте этот тег, если у вас возникли проблемы с использованием или пониманием самого языка. Этот тег редко используется отдельно и чаще всего используется вместе с [spring], [spring-boot], [jakarta-ee], [android], [javafx], [hadoop], [gradle] и [maven].