Я предполагаю, что это игра-программа 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 в "?"?

-2
SchleptOn27 2 Май 2019 в 06:51

5 ответов

Лучший ответ

Нет необходимости печатать ? для каждого символа. Вы можете просто заменить каждый символ на ? и сгенерировать новую строку без печати.

String newUserString = userString.replaceAll(".","?");
2
Pankaj Singhal 2 Май 2019 в 04:00

Из того, что я понял, я думаю, что вы хотите сохранить "?" , для этого создайте строку var вне цикла for и добавьте '?' в этом.

String temp="";
for(int i=0;i<s1;i++)
{
temp=temp+"?";
}
System.out.println(temp);

Это должно хранить строку в temp.

0
mayank kshirsagar 2 Май 2019 в 03:57

Java 11 предоставляет метод repeat ().

Ты можешь использовать

“?”.repeat(s1) внутри sysout

System.out.print(“?”.repeat(s1)) и может удалить цикл for

Это будет повторять? с1 раз.

0
Arasn 2 Май 2019 в 03:58

Заменить все - это правильный ответ, но если по какой-то причине вам пришлось выполнить цикл for, вы можете использовать StringBuilder и добавить a? для каждого символа в строке примерно так:

String userInput = "myString";
StringBuilder myBuilder = new StringBuilder();
for(int x = 0; x<userInput.length(); x++){
   myBuilder.append("?");
}
String myNewString = myBuilder.toString();

Но заменить все ответы выше - правильный способ сделать это.

0
chas spenlau 2 Май 2019 в 04:11

Если вы хотите заменить каждый символ строки на ?, вы можете попробовать

String newString = userString.replaceAll(".", "?");

"." - это регулярное выражение, которое будет соответствовать любому символу, кроме новой строки, которую в любом случае ваша строка не будет содержать.

1
Dawood ibn Kareem 2 Май 2019 в 03:59