2014-01-30 35 views
0

如何實例化我的數組,使其具有26個隨機字符?要存儲在數組中的隨機字符發生器

import java.util.Random; 

public class Encryption { 

Random r = new Random(); 
char[] real = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'}; 
char[] decrypted = //?????? 

for(i=0; i < decrypted.length; i++) { 

} 
+1

實例化一個數組要麼你需要知道數組的大小或數組中的內容。 'char [] decrypted = new char [26];' –

+0

是否有更傳統的方法將字母中的每個字母放在我的數組中比我做的更多? – PatGreens

+1

你需要洗牌陣列嗎?或者有可能有重複? – ferrerverck

回答

2

實例化大小爲26的數組;

char[] array = new char[26]; 

添加隨機字符

for(int i = 0; i < array.length; i++){ 
    array[i] = (char)(r.nextInt(26) +97); 
    System.out.print(array[i]); 
} 

(小寫字母)的範圍內可以修改此通過去除隨機部分,並使用i

for(int i = 0; i < array.length; i++){ 
    array[i] = (char)(i + 97); 
    System.out.print(array[i]); 
} 
+0

爲什麼是+97?我不明白那部分 – PatGreens

+1

@PatGreens 97是字符'a'的十進制值。看看這個[ASCII字符圖表](http://www.asciitable.com/)。所以我加上這個,使得最小的int可能是97 ...當作爲字符轉換時是'a' –

+0

ooooh我看到這很有趣。 SOrry即時相當新 – PatGreens

0

填寫您的例子:

import java.util.Random; 

public class Encryption { 

    Random r = new Random(); 
    char[] real = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'}; 
    char[] decrypted = new char[26]; 

    public static void main(String[] args){ 
    for(i=0; i < decrypted.length; i++) { 
     decrypted[i] = real[r.nextInt(26)]; 
    } 
    } 
} 
+0

這是否返回一個字符 – PatGreens

+0

是否返回一個字符? –

+0

再看看,看看你如何調用解密的數組,我想我誤解了你的需求。什麼解密應該是?它是你需要用26個隨機字符實例化的數組嗎?大概以後你會用一些基本的移位密碼來加密它嗎? –