2017-10-12 10 views
-14

Javaのプログラムをコンパイルするたびに6文字のランダムな文字列を生成したい。例えばJavaでランダムな文字列を生成する

:AXFGCDは、GDGXSD、PLRSFX、GLTSDL

public class generate{ 
    public static void main(String args[]){ 
     generate(); 
    } 

    string word = ""; 
    string Characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; 

    void generate(int x){ 
     if (x==7) return; 

     int time = System.currentTimeMillis() % 33; //to generate time in mili second 
     word += characters.charAt(time); 
     System.out.println(time); 
     return generate(++x); 
    } 
} 

出力は

A,AX,AXF,AXFC,AXFCG,AXFCGA 

ですが、私は直接の6桁の単語

+0

@OHGODSPIDERSまた、 'string'は型ではありません。 – Michael

+0

なぜ再帰を使用していますか? –

+0

そしておとぎ話になる - あなたが気にしないと確信していますが、これは実行時に生成され、コンパイル時ではありません。 – Michael

答えて

1

あなたの方法は、あなたの目的を達成さが欲しいです。あなたの問題は、あなたの方法でそれらを印刷することによってあなたのステップを「ロギング」していることです(また、のようなエラーがあり、あなたのgenerate関数を誤って呼び出すことがあります。あなただけのこの操作を行う場合は

public class generate{ 
    public static void main(String args[]){ 
     generate(0); 
     System.out.println(word); // Here word is complete 

    } 

    String word = ""; 
    String Characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; 

    void generate(int x){ 
     if (x==7) return; 

     int time = System.currentTimeMillis() % 33; //to generate time in mili second 
     word += characters.charAt(time); 
     return generate(++x); 
    } 
} 

それが動作します。

void generate(){ 
    for (int i = 6; i --> 0;) { 
     int time = System.currentTimeMillis() % 33; //to generate time in mili second 
     word += characters.charAt(time); 
    } 
    System.out.println(word); 
} 
2

私は現在、私は、これはコンパイルし、それがない場合にはそれが必要願って、利用可能なIDEを持っていけないので、これは、メモ帳++で書かれていた。また、あなたの機能であなたのwordを印刷するには、反復的なアプローチを使用してきた可能性が仕事:) 大文字を使用したい場合は、単にforループを編集してください!

public class generate{ 

    private static char[] characters; 
    private static Random random = new Random(); 

    public static void main(String args[]){ 
     characters = new char[26]; 
     int index = 0; 
     for (char c = 'a'; c <= 'z'; c++) { 
      characters[index++] = c; 
     } 
     System.out.println(generate()); 
    } 

    static String generate() { 
     String word = ""; 
     for(int i = 0 ; i < 7 ; i++) { 
      word += Character.toString(characters[random.nextInt(characters.length)]); 
     } 
     return word; 
    } 
} 

編集:コードを使用してください!

public class generate{ 
    public static void main(String args[]){ 
     generate(); 
    } 

    string word = ""; 
    string Characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; 

    void generate(int x){ 
     if (x==7) { 
      System.out.println(word); 
      return; 
     } 

     int time = System.currentTimeMillis() % 33; //to generate time in mili second 
     word += characters.charAt(time); 
     return generate(++x); 
    } 
} 
+0

非常に便利です、ありがとう! – Dinh

関連する問題