【问题标题】:Is there a way to get System.out.print(); value from a For loop;有没有办法获得 System.out.print();来自 For 循环的值;
【发布时间】:2019-05-02 03:51:41
【问题描述】:

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

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

【问题讨论】:

  • 您可以将其存储在变量中并输出变量。在将字符串转换为?s方面,可以试试String.replace

标签: java string for-loop


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    如果要将String的每个字符都替换为?,可以试试

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

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

    【讨论】:

      【解决方案3】:

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

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

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

      【讨论】:

        【解决方案4】:

        Java 11 提供了 repeat() 方法。

        你可以使用

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

        System.out.print(“?”.repeat(s1)) 可以去掉for循环

        它会重复 ? s1 次。

        【讨论】:

          【解决方案5】:

          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();
          

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

          【讨论】:

            猜你喜欢
            • 2023-03-04
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-02-28
            • 2022-11-30
            • 1970-01-01
            • 2020-09-27
            • 1970-01-01
            相关资源
            最近更新 更多