2016-11-02 8 views
-2

ユーザは2つの異なる配列に任意の量の名詞と形容詞を入力する必要があります(配列ごとに最低3つ)。例の配列ユーザーはapple、pair、orangeを入力します。配列b =緑、甘い、腐った、青。今、私は無作為に形容詞を選んで名詞に加える必要があります。スウィートリンゴ、腐ったペアなど...私は同じ単語を2回使うことはできませんし、math.Random()を使う必要があります。どのようにこれを行うことができますか?あなたはこのようなリストのために設計されたコレクションシャッフル方法を使用することができます2つの異なる配列から文字列を選択し、それぞれに存在する要素をランダムに結合する方法は?

public static void main(String[] args) { 
    String[] Noun = new String[4]; 
    String[] Adj = new String[4]; 
    int numbOfNouns = 0; 
    int numbOfAdj = 0; 

    Scanner kb = new Scanner(System.in); 
    System.out.println("How many nouns ? min 3"); 
    numbOfNouns = kb.nextInt(); 

    while (numbOfNouns < 3) { 
     System.out.println("How many nouns ? min 3"); 
     numbOfNouns = kb.nextInt(); 
    } 

    System.out.println("Enter " + numbOfNouns + " nouns"); 
    for (int i = 0; i <= numbOfNouns; i++) { 
     Noun[i] = kb.nextLine(); 
    } 

    System.out.println("How many adjectives ? min 3"); 
    numbOfAdj = kb.nextInt(); 


    while (numbOfAdj < 3) { 
     System.out.println("How many adjectives ? min 3"); 
     numbOfAdj = kb.nextInt(); 
    } 

    System.out.println("Enter " + numbOfAdj + " adjectives"); 

    for (int i = 0; i <= numbOfAdj; i++) { 
     Adj[i] = kb.nextLine(); 
    } 

} 
+2

このISNあなたの宿題を投稿して誰かにそれを解決させる場所です。何を試しましたか? –

答えて

2

:ところで

List<String> arrayNoun = Arrays.asList(Noun); 
Collections.shuffle(arrayNoun); 

List<String> arrayAdj = Arrays.asList(Adj); 
Collections.shuffle(arrayAdj); 

を、私はあなたがこのようなコードを全部解決すると思う:

public static void main(String[] args) { 
    // when you ask user to enter number of objects in your array then you cannot define fix array size! 
    String[] Noun; 
    String[] Adj; 

    int numbOfNouns = 0; 
    int numbOfAdj = 0; 

    Scanner kb = new Scanner(System.in); 

    // the whole while loop can handle reading the number of nouns and so there is no need to call this code once before the loop! 
    while (numbOfNouns < 3) { 
     System.out.println("How many nouns ? min 3"); 
     numbOfNouns = kb.nextInt(); 
     kb.nextLine(); // get enter key after number enter 
    } 

    // here you define size of your array according to user input 
    Noun = new String[numbOfNouns]; 

    System.out.println("Enter " + numbOfNouns + " nouns"); 
    for (int i = 0; i < numbOfNouns; i++) { 
     Noun[i] = kb.nextLine(); 
    } 

    while (numbOfAdj < 3) { 
     System.out.println("How many adjectives ? min 3"); 
     numbOfAdj = kb.nextInt(); 
     kb.nextLine(); // get enter key after number enter 
    } 

    Adj = new String[numbOfAdj]; 

    System.out.println("Enter " + numbOfAdj + " adjectives"); 

    for (int i = 0; i < numbOfAdj; i++) { 
     Adj[i] = kb.nextLine(); 
    } 

    List<String> arrayNoun = Arrays.asList(Noun); 
    Collections.shuffle(arrayNoun); 

    List<String> arrayAdj = Arrays.asList(Adj); 
    Collections.shuffle(arrayAdj); 
} 
関連する問題