2014-03-12 101 views
0

我想生成一個固定數量的隨機隨機字符,然後將這些字符保存到一個字符串變量中。這裏是簡單的「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

「存儲值我想要的方式」?你想要什麼? –

+0

沒有'listChars'變量。你的意思是'listWords',對吧? – fge

+1

考慮使用StringBuilder來連接你的字符串(更高效) – TheEwook

回答

5

您已在for循環中定義了一個重複的變量。

此:

String listwords = "" + randomChar; 

應該是:

listwords += randomChar; 
+1

那該死的快.. –

+0

謝謝;這個答案簡短而甜蜜。和地獄一樣快。 – FluffyKittens

3
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);   
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); 
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); 
+1

請添加更多信息,例如說明您的代碼如何解決問題 –

2

嘗試使用StringBuilderStringBuffer而不是String變量。它們消耗更少的內存。

StringBuilder就內存而言優於StringBuffer,但它不是線程安全的。

StringBuffer sb = new StringBuffer(""); 

嘗試使用像這樣在你的for循環

sb.append(randomChar); 
+0

感謝您提供內存保存建議。我並不十分關心這個項目中的內存使用情況,但我會在未來記住這一點。 – FluffyKittens

0

你不需要申報新的字符串變量listwords內循環。

刪除: -

String listwords = "" + randomChar; 

地址: -

listwords = "" + randomChar;