我想生成一定数量的随机随机字符,然后将这些字符保存到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个字符长的字符串)
有没有办法让这个工作,也许有一个数组?
答案 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)
尝试使用StringBuilder
或StringBuffer
代替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;