爪哇。如何将随机字符行转换为字符串? [复制]

Posted

技术标签:

【中文标题】爪哇。如何将随机字符行转换为字符串? [复制]【英文标题】: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() 有什么看法?它返回什么? 一个在***中被问过多次的问题***.com/questions/41107/… charAt 方法返回 char 而不是 String 我猜你想使用类似 StringBuilder 的东西,你在 for 循环中附加它。在循环之后,您可以在该构建器上调用 toString 并构建您的 String 。您正在做的是在循环的每次运行中创建一个只有一个字符的新字符串。 【参考方案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();
    

【讨论】:

以上是关于爪哇。如何将随机字符行转换为字符串? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何将字符串转换为字符? [复制]

如何将字符串转换为日期时间? [复制]

如何将字符串日期转换为不同的字符串日期? [复制]

如何使用javascript将字符串数组转换为布尔值? [复制]

如何将包含多个字符的列表转换为字符串? [复制]

如何将 JSON 转换为字符串? [复制]