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

我正在猜测字符串程序游戏,我需要将用户输入的字符串从字母和空格/空格转换为问号(?)。我该怎么做呢?


我使用了一个 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 输入了“这是一个字符串”。当我运行程序时,它会输出:???????????????? 有没有办法将此输出转换为字符串?或者有没有更好的方法将字符串值转换为“?”?


汪汪一只猫
浏览 93回答 5
5回答

大话西游666

无需?为每个字符打印。您可以用 a 替换每个字符?并生成一个新字符串而不打印。String&nbsp;newUserString&nbsp;=&nbsp;userString.replaceAll(".","?");

慕少森

如果您想用 替换字符串的每个字符?,您可以尝试String&nbsp;newString&nbsp;=&nbsp;userString.replaceAll(".",&nbsp;"?");这"."是一个正则表达式,它将匹配除换行符之外的任何字符,您的 String 无论如何都不会包含该字符。

Helenr

replace all 是正确的答案,但如果由于某种原因你不得不做一个 for 循环,你可以使用 StringBuilder 并附加一个 ? 对于字符串中的每个字符,如下所示:String userInput = "myString";StringBuilder myBuilder = new StringBuilder();for(int x = 0; x<userInput.length(); x++){&nbsp; &nbsp;myBuilder.append("?");}String myNewString = myBuilder.toString();但是上面替换所有答案是正确的方法。

慕慕森

据我了解,我认为您想存储“?” , 为此在 for 循环外创建一个字符串 var 并附加 '?' 在里面。String temp="";for(int i=0;i<s1;i++){temp=temp+"?";}System.out.println(temp);这应该将字符串存储在 temp 中。

小唯快跑啊

Java 11 提供了 repeat() 方法。您可以使用“?”.repeat(s1)内部系统输出System.out.print(“?”.repeat(s1))并且可以删除for循环它会重复 ?&nbsp;s1 次。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java