从多个随机字符变量中创建单个String变量

时间:2014-03-12 12:45:53

标签: java string

我想生成一定数量的随机随机字符,然后将这些字符保存到String变量中。这是简单的' for'我到目前为止已写过:

String listChars = "";

for(int i = 0; i < 50; i++){
    char randomChar = (char)((Math.random()*255)+32);
    System.out.print(randomChar);
    String listChars = "" + randomChar;
}

System.out.print(listChars);

我排除了前32个字符以避免控制字符。我的for循环将50个随机字符打印到屏幕上就好了,但我的listChars变量似乎并没有按照我想要的方式存储值。 (我想将它们存储为一个50个字符长的字符串)

有没有办法让这个工作,也许有一个数组?

6 个答案:

答案 0 :(得分:4)

您已在for循环中定义了重复的变量。

此:

String listwords = "" + randomChar;

应该是:

listwords += randomChar;

答案 1 :(得分:2)

    StringBuilder builder = new StringBuilder();
    for (int i = 0; i < 50; i++) {
        char randomChar = (char)((Math.random()*255)+32);
        System.out.print(randomChar);
        builder.append(randomChar);
    }
    System.out.print(builder);        

答案 2 :(得分:1)

尝试使用StringBuilderStringBuffer代替String变量。它们消耗的内存较少。

StringBuilder在内存方面优于StringBuffer,但它不是线程安全的。

StringBuffer sb = new StringBuffer("");

尝试在for循环中使用这样的

sb.append(randomChar);

答案 3 :(得分:0)

试试这个:

String listwords = "";
        for(int i = 0; i < 50; i++){
        char randomChar = (char)((Math.random()*255)+32);
        System.out.print(randomChar);
        listwords += randomChar;
        }
        System.out.print(listwords);

答案 4 :(得分:0)

String listwords = "";
    for(int i = 0; i < 50; i++){
    char randomChar = (char)((Math.random()*255)+32);
    System.out.print(randomChar);
    listwords = listwords + randomChar;
    }
    System.out.print(listwords);

答案 5 :(得分:0)

您不需要在循环内声明新的String变量listwords

删除: -

String listwords = "" + randomChar;

添加: -

listwords = "" + randomChar;