2015-02-05 76 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