2015-02-05 29 views
-4

好傢伙帶字符串的隨機生成器? (JAVA)

我學習Java,我會PROGRAMM一個隨機數發生器,但用繩子......我的意思是作爲實例

用戶給予的字符串:驢,寵物,狗 現在發生器使用字符串隨機連接字。

現在我有:

public void buttongeneratedClicked() 
{ 
     String ex1 =jTextField1.getText(); 
     String ex2 =jTextField2.getText(); 
     String ex3 =jTextField3.getText(); 
     String ex4 =jTextField4.getText(); 
     String ex5 =jTextField5.getText(); 
     String ex6 =jTextField6.getText(); 
     String ex7 =jTextField7.getText(); 
     String ex8 =jTextField8.getText(); 

     if(wordwish == true && randompasswd == false) { 
      output.append(ex1 + ex2); 
      output.append("\n"); 
      output.append(ex1 + ex3); 
      output.append("\n"); 
      output.append(ex1 + ex4); 
      output.append("\n"); 
      output.append(ex1 + ex5); 
      output.append("\n"); 
      output.append(ex1 + ex6); 
      output.append("\n"); 
      output.append(ex1 + ex7); 
      output.append("\n"); 
      output.append(ex1 + ex8); 
      output.append("\n"); 
     } 
    } 

而且我知道這是一個壞的解決方案。我該如何做到這一點,本程序自行將所有字符串連接在一起,並且當所有字符串都與其他字符串連接時,它就結束了。我不需要完整的解決方案,但我沒有找到無助的鏈接。我希望有人能幫助我^^格爾茨

+0

開始使用數組 – Johan 2015-02-05 16:23:22

回答

0

這裏一個簡單的方法來隨機您的字符串:

List<String> list = new ArrayList<String>(); 
list.add("Ass"); 
list.add("Pet"); 
list.add("Dog"); 
Collections.shuffle(list); 
System.out.println(list); 
1

這裏是另一種方式來多串隨機連接在一起使用RandomArrayListStringBuilder

import java.util.Random; 
import java.util.ArrayList; 

/** 
* Example class for how to randomly connect disparate strings. 
*/ 
public class StringRandomizer 
{ 
    /** 
    * Method that randomly connects some strings together. 
    */ 
    public static String getRandomString() 
    {  
     Random random = new Random(); 
     ArrayList<String> list = new ArrayList<String>(); 
     StringBuilder sb = new StringBuilder(); 

     // add all of your strings to the list 
     list.add("1"); 
     list.add("2"); 
     list.add("3"); 
     list.add("4"); 

     // Build your return string 
     while(!list.isEmpty()) 
     { 
      //this line does the heavy lifting 
      sb.append(list.remove(random.nextInt(list.size()))); 
      sb.append(' '); 
     } 
     return sb.toString(); 
    } 

    /** 
    * Test the example. 
    */ 
    public static void main(String[] args) 
    { 
     System.out.println(getRandomString()); 
    } 
} 

該解決方案應該是有效的,因爲大多數方法調用是恆定時間操作,並且具有大約2N的運行時間,其中N是隨機連接的字符串的數量(因爲添加到ArrayList和while循環中的代碼)。

+0

謝謝,但我是一個德國人。我想我有虛假的轉運。輸出是可以的。我的問題是隨機連接用戶輸入的關鍵字。所以我的意思是在輸入是Worde Ex1 ex2和ex3,所以現在當用戶敲擊按鈕時,我會發現程序隨機連接字,當所有的字都隨機連接發電機停止 – PatrickB 2015-02-06 12:43:38

+0

哦sry假評論框:D謝謝你你的幫助 – PatrickB 2015-02-06 12:48:43

+0

很高興這很有幫助,如果你喜歡它,你可以對它進行投票並選擇它作爲答案,除非答案在某種程度上是不完整的。 – AaronCarson 2015-02-07 10:55:00