【问题标题】:Java. How to convert random line of characters to a string? [duplicate]爪哇。如何将随机字符行转换为字符串? [复制]
【发布时间】:2013-08-25 03:11:52
【问题描述】:

我是 Java 新手。我大约在 3 天前开始。我想制作一行随机字符并将它们放入一个字符串中。谢谢你。

    import java.util.Random;
      public class test{
      public static void main (String[]args){

final String alphabet = "abcdefghigklmnopqrstuvwxyz";
final int N = alphabet.length();
Random r = new Random();

for (int i = 0; i < 50; i++) {
    String s = alphabet.charAt(r.nextInt(N));
    // System.out.println(alphabet.charAt(r.nextInt(N)));
}}}

【问题讨论】:

  • 编译完成。未编译以下文件:发现 1 个错误:文件:C:\Users\Arnas\Desktop\Java\hack.java [行:10] 错误:需要不兼容的类型:找到 java.lang.String:char
  • 编程的第一条规则:阅读错误信息。 [Java] 编程的第二条规则:阅读 [Java]doc。文档对 String.charAt() 有什么看法?它返回什么?
  • 一个在stackoverflow中被问过多次的问题stackoverflow.com/questions/41107/…
  • charAt 方法返回 char 而不是 String
  • 我猜你想使用类似 StringBuilder 的东西,你在 for 循环中附加它。在循环之后,您可以在该构建器上调用 toString 并构建您的 String 。您正在做的是在循环的每次运行中创建一个只有一个字符的新字符串。

标签: java


【解决方案1】:

最简单的方法是使用 StringBuilder 或 StringBuffer(语法相同)。

StringBuilder sb = new StringBuilder();
for (int i = 0; i < 50; i++) {
    sb.append(alphabet.charAt(r.nextInt(N)));
}
String s = sb.toString();

【讨论】:

  • +1 使用 StringBuilder
  • 为StringBuilder点赞
  • 谢谢。它有效,但我必须添加 if 语句,如果 sb 长度超过 30 sb 将被重置,然后我使用 Mikkel Løkke 方法。
  • 我还不熟悉 StringBuilder。还是谢谢你。
【解决方案2】:
String s = "";
for (int i = 0; i < 50; i++) {
    s += alphabet.charAt(r.nextInt(N));
}

【讨论】:

    【解决方案3】:

    将您的随机字符附加到充当文本缓冲区的StringBuilder

    StringBuilder sb = new StringBuilder();
    
    for (int i = 0; i < 50; i++) {
        sb.append(alphabet.charAt(r.nextInt(N)));
    }
    
    System.out.println(sb);
    

    【讨论】:

      【解决方案4】:

      使用 StringBuilder

      StringBuilder sb = new StringBuilder()
      for (int i = 0; i < 50; i++) {
          sb.append(alphabet.charAt(r.nextInt(N)))
      }
      String s = sb.toString()
      

      【讨论】:

        【解决方案5】:

        最简单的方法是将带有加法运算符(“+”)的字符添加到字符串中。它的功能被重载,所以应该可以工作。

        随着您对 Java 的熟悉程度越来越高,您应该开始使用 StringBuilder 或 StringBuffer。

        【讨论】:

          【解决方案6】:

          使用StringBuilder 来添加字符以构建字符串 -

          import java.util.Random;
          
          public class test{
          
              public static void main (String[]args){
                  final String alphabet = "abcdefghigklmnopqrstuvwxyz";
                  final int N = alphabet.length();
                  Random r = new Random();
                  StringBuilder builder = new StringBuilder();
          
                  // make strings with 50 characters
                  for (int i = 0; i < 50; i++) {
                      builder.append(alphabet.charAt(r.nextInt(N)));
                  }
          
                  System.out.println(builder.toString();
              }
          }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2016-09-30
            • 2022-01-10
            • 2015-04-05
            • 1970-01-01
            • 2011-06-24
            • 1970-01-01
            • 2021-08-19
            相关资源
            最近更新 更多