2016-05-28 153 views
0

我想在java中創建一個程序,其中我爲男孩創建了三個數組,其中一個爲男孩的名字,一個爲感情類(愛,恨,崇拜),第三個爲女孩,其中包括名字女孩。我可以將數組存儲到另一個數組中嗎?

現在我爲每個陣列生成隨機數並將它們連接在一起,以產生像...(boys[]+" "+feelings[]+" "+girls[])這樣的輸出,例如Sagar hates Sakshi

現在這句話是關於男孩。我想生成另一個字符串像Sakshi Love Shubham女孩。現在這些新生成的字符串也應該隨機打印,我該怎麼做?

我的源代碼是這樣的......

public class Random 
{ 
    public static void main(String args[]) 
    { 
     String[] boys={"shivam","shubham","sagar","Tushar","tarun"}; String[]=girls{"payal","preeti","neetika","sakshi_jain","sakshi_singh","wafa","Reshu","Pragya"}; 
     String[] feelings={"Love","Hate","Adore","want_to_kill"}; 

     int x=boys.length; 
     int y=girls.length; 
     int z=feelings.length; 

     for(int i=0;i<10;i++) 
     { 
      int rand1=(int)(Math.random()*x); 
      int rand2=(int)(Math.random()*y); 
      int rand3=(int)(Math.random()*z); 

      String phase1=girls[rand2]+" "+feelings[rand3]+" "+boys[rand1]; 
      String phase2=boys[rand1]+" "+feelings[rand3]+" "+girls+[rand2]; 
      String[][] phase={phase1,phase2}; 

      int p=phase.length; 
      int q=(int)(Math.random()*p); 

      System.out.println(phase[0][q]); 
     } 
    } 
} 

回答

0

可以聲明一個包裝類(一期)來存儲您的字符串對,並使用ArrayList來存儲「相類」。

import java.util.ArrayList; 

public class Test 
{ 
    public static void main(String[] args) { 
     String[] boys={"shivam","shubham","sagar","Tushar","tarun"}; String[]girls={"payal","preeti","neetika","sakshi_jain","sakshi_singh","wafa","Reshu","Pragya"}; 
     String[] feelings={"Love","Hate","Adore","want_to_kill"}; 

     int x=boys.length; 
     int y=girls.length; 
     int z=feelings.length; 

     for(int i=0;i<10;i++) 
     { 
      int rand1=(int)(Math.random()*x); 
      int rand2=(int)(Math.random()*y); 
      int rand3=(int)(Math.random()*z); 

      String phase1=girls[rand2]+" "+feelings[rand3]+" "+boys[rand1]; 
      String phase2=boys[rand1]+" "+feelings[rand3]+" "+girls[rand2]; 

      ArrayList<Phase> phase = new ArrayList<>(); 
      phase.add(new Phase(phase1, phase2)); 

      int p=phase.size(); 
      int q=(int)(Math.random()*p); 

      System.out.println(phase.get(q)); 
      System.out.println("**************"); 
     } 
    } 
} 

class Phase { 
    String phase1; 
    String phase2; 

    public Phase(String p1, String p2) { 
     this.phase1 = p1; 
     this.phase2 = p2; 
    } 
    public String toString(){ 
     return phase1 + "\n" + phase2; 
    } 
} 
1

能否請您檢查以下解決方案:

public class Random { 
    public static void main(String args[]) { 
     String[] boys = { "shivam", "shubham", "sagar", "Tushar", "tarun" }; 
     String[] girls = { "payal", "preeti", "neetika", "sakshi_jain", "sakshi_singh", "wafa", "Reshu", "Pragya" }; 
     String[] feelings = { "Love", "Hate", "Adore", "want_to_kill" }; 

     String[][] emotions = new String[2][]; 
     emotions[0] = new String[boys.length]; 
     emotions[1] = new String[girls.length]; 

     // boys emotions 
     for (int i = 0; i < boys.length; i++) { 
      String subject = boys[i]; 
      String verb = getRandomItem(feelings); 
      String object = getRandomItem(girls); 
      emotions[0][i] = subject + " " + verb + " " + object; 
     } 

     // girls emotions 
     for (int i = 0; i < girls.length; i++) { 
      String subject = girls[i]; 
      String verb = getRandomItem(feelings); 
      String object = getRandomItem(boys); 
      emotions[1][i] = subject + " " + verb + " " + object; 
     } 

     // printing two dimensional array 
     for (int i = 0; i < emotions.length; i++) { 
      for (int j = 0; j < emotions[i].length; j++) { 
       System.out.println(emotions[i][j]); 
      } 
     } 

    } 

    // returns a random element 
    private static String getRandomItem(String[] arr) { 
     int max = arr.length - 1; 
     int min = 0; 
     java.util.Random random = new java.util.Random(); 
     int index = random.nextInt(max - min + 1) + min; 
     return arr[index]; 

    } 
} 

,並告訴我結果如何?

相關問題