2016-11-11 6 views
0

私はAからEまで3文字のランダムな文字を出力するプログラムを作成しています。問題は、小文字のAからE(A、A、B、文字を出力するJavaのランダムクラス(AからE)

これは私がランダムな文字を印刷するために使用したものです。

letterValue = (char) (rand.nextInt(5) + 'A'); 
System.out.print(letterValue); 

変数 'letterValue'は、AからE、大文字と小文字の両方を出力する必要があります。

+4

'(char)(rand.nextInt(5)+ rand.nextBoolean()? '' '' a)); – flakes

+0

文字は異なる必要がありますか? A、b、Aは有効な出力ですか? A、b、a? –

+0

これは@flakesが動作していません。 – Majestic

答えて

1

これを行うには非常にエレガントな方法があります。「ランダム」にする予定の値を持つ配列を使用するだけです。その配列をシャッフルします。そして、あなたはJavas Listクラスに入れたとき、あなたは内蔵のshuffle方法を使用することができます

のように:あなたはそのList<Character>の代わりにcharの配列を使用して主張する場合

List<Character> values = Arrays.asList('A', 'a', ...); 
Collections.shuffle(values); 

を...することができますそのリストをそのような配列に簡単に変換することもできるので、上記の方法を使用します(例えばhereを参照)。

配列を使用しない場合は、「別のコインを裏返す」ことができます。意味:ちょうど0または1の別のランダムな値を取得します。大文字のままにしておきます。 1の場合は、対応する小文字の値を単純に使用します。

(とあなたがあまりにも、「」使用して「数学」に「A」から取得することができます知っている - あなたはすでにここで何をしているかに似)

+0

どのように配列なしでそれを行うのですか? – Majestic

+0

私は自分の答えを更新しました。希望が役立つ – GhostCat

0
 letterValue = (char) (rand.nextInt(5) + 'A'); 
     if (rand.nextBoolean()) { 
      letterValue = Character.toLowerCase(letterValue); 
     } 
     System.out.print(letterValue); 

これは、多くのうちただ一つの方法であります。私はあなた自身のコードを使用しており、必要以上に複雑な作業をしないようにしています。私はあなたが3つのランダムな手紙を望んでいたので、これを3回走らせ、d,dおよびCを印刷しました。

関連する問題