我在猜测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值转换为“?”?
答案 0 :(得分:2)
不需要为每个字符打印?
。您只需将每个字符替换为?
并生成一个新字符串,而无需打印。
String newUserString = userString.replaceAll(".","?");
答案 1 :(得分:1)
如果您想用?
替换字符串的每个字符,可以尝试
String newString = userString.replaceAll(".", "?");
"."
是一个正则表达式,它将匹配除换行符之外的任何字符,换行符不会包含任何换行符。
答案 2 :(得分:0)
据我了解,我认为您想存储“?” , 要做到这一点 在for循环外创建一个字符串var 并附加'?'在里面。
String temp="";
for(int i=0;i<s1;i++)
{
temp=temp+"?";
}
System.out.println(temp);
这应该将字符串存储在临时文件中。
答案 3 :(得分:0)
Java 11提供了repeat()方法。
您可以使用
“?”.repeat(s1)
位于sysout内部
System.out.print(“?”.repeat(s1))
并可以删除for循环
它会重复吗? s1次。
答案 4 :(得分:0)
全部替换是正确的答案,但是如果出于某种原因您不得不进行for循环,则可以使用StringBuilder并附加一个?对于字符串中的每个字符,如下所示:
String userInput = "myString";
StringBuilder myBuilder = new StringBuilder();
for(int x = 0; x<userInput.length(); x++){
myBuilder.append("?");
}
String myNewString = myBuilder.toString();
但是上述替换所有答案是正确的方法。