2017-03-25 11 views
0

私はJavaに関して簡単な質問があります。私は現在、配列に関するコードの割り当てについて勉強しています。本質的には、割り当てはいくつかの文字列配列を作成し、配列の要素を選択するための数字をランダムに生成しています。Java文字列検証ループ

割り当ての要件の1つは、2つの配列からピッキングされた結果である検証を行うことです。検証のルールは、文字列の長さが8文字を超えないようにすることです。 8より大きい場合、ランダムに8文字以下の別の文字列を生成する必要があります。

do-whileとwhile(loopFlag)検証ループを試してみました。しかし、私はちょうどそれが適切に動作するように見えることはできません。典型的には、コンソールはエラーに陥り、妥当性検査ループに陥るだけです。 int characterLengthを作成し、.length()メソッドを使用してみましたが、動作しないようです。

ご協力いただければ幸いです!

ありがとうございます!

+5

私は試したことのあるコードスニペットを表示できますか? –

+0

whileループ内で何が起こっているのかを確認するには、関連する値を出力し、何かを入力するまでループを一時停止するSystem.console.readLine()のようなread文を追加します。また、デバッガを使用することもできます。 –

答えて

0
Random random = new Random(); 
String [] results = new String[50]; 
int index = 0; 

while(index < results.length) { 

    //to get some random values 
    //String num = String.valueOf(someByteArray); 
    String num = String.valueOf(random.nextInt()); //value from first array 
    num += String.valueOf(random.nextInt()); //value from second array 


    // to long? 
    if(num.length() > 8) { 
     System.out.println("Not valid " + num); 
     continue; 
    } 

    try { 
     //is it number? 
     Integer.valueOf(num); 
    } catch (NumberFormatException e) { 
     //it was not number or to big for int 
     System.out.println("Not valid " + num); 
     continue; 
    } 

    results[index++] = num; 
    System.out.println("Valid " + num); 
} 
+0

私はあなたが要件を正しく読んだとは思えませんが、おそらくここに彼が使用できるものがあります。 –

0

すべてが私の居場所を終了した場所になりました。私の教授は、あなたの入力が配列/変数に追加される前に、その入力を常に検証すべきだと教えてくれました。

do-whileループを使用しましたが、結果を配列に追加する前にdo-whileを終了する代わりにforループのコードをすべて含めました。

行う { ......}ながら(vanityPlate.length()< 9)。

ありがとうございました!