为了账号安全,请及时绑定邮箱和手机立即绑定

有没有办法获得 System.out.print(); 来自 For 循环的值;

有没有办法获得 System.out.print(); 来自 For 循环的值;

汪汪一只猫 2022-11-02 16:07:06
我正在猜测字符串程序游戏,我需要将用户输入的字符串从字母和空格/空格转换为问号(?)。我该怎么做呢?我使用了一个 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 输入了“这是一个字符串”。当我运行程序时,它会输出:???????????????? 有没有办法将此输出转换为字符串?或者有没有更好的方法将字符串值转换为“?”?
查看完整描述

5 回答

?
大话西游666

TA贡献1817条经验 获得超14个赞

无需?为每个字符打印。您可以用 a 替换每个字符?并生成一个新字符串而不打印。

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


查看完整回答
反对 回复 2022-11-02
?
慕少森

TA贡献2019条经验 获得超9个赞

如果您想用 替换字符串的每个字符?,您可以尝试

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

"."是一个正则表达式,它将匹配除换行符之外的任何字符,您的 String 无论如何都不会包含该字符。


查看完整回答
反对 回复 2022-11-02
?
Helenr

TA贡献1780条经验 获得超3个赞

replace all 是正确的答案,但如果由于某种原因你不得不做一个 for 循环,你可以使用 StringBuilder 并附加一个 ? 对于字符串中的每个字符,如下所示:


String userInput = "myString";

StringBuilder myBuilder = new StringBuilder();

for(int x = 0; x<userInput.length(); x++){

   myBuilder.append("?");

}

String myNewString = myBuilder.toString();

但是上面替换所有答案是正确的方法。


查看完整回答
反对 回复 2022-11-02
?
慕慕森

TA贡献1856条经验 获得超17个赞

据我了解,我认为您想存储“?” , 为此在 for 循环外创建一个字符串 var 并附加 '?' 在里面。


String temp="";

for(int i=0;i<s1;i++)

{

temp=temp+"?";

}

System.out.println(temp);


这应该将字符串存储在 temp 中。


查看完整回答
反对 回复 2022-11-02
?
小唯快跑啊

TA贡献1863条经验 获得超2个赞

Java 11 提供了 repeat() 方法。

您可以使用

“?”.repeat(s1)内部系统输出

System.out.print(“?”.repeat(s1))并且可以删除for循环

它会重复 ? s1 次。


查看完整回答
反对 回复 2022-11-02
  • 5 回答
  • 0 关注
  • 92 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信