带字符串的随机生成器? (JAVA)

时间:2015-02-05 16:18:43

标签: java string random generator

Hello Guys

我学习Java,我将编程一个随机生成器,但有字符串......我的意思是作为例子

用户提供字符串:屁股,宠物,狗 现在The Generator使用Strings随机连接单词。

现在我有:

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");
        }
    }

我知道这是一个糟糕的解决方案。我怎么能这样做,程序自己工作连接所有字符串,当所有字符串与他结束的其他字符串连接。我不需要完整的解决方案,但我没有找到无助的链接。我希望有人可以帮助我^^ Greetz

2 个答案:

答案 0 :(得分: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 loop)。

答案 1 :(得分:0)

这是一种随机化字符串的简单方法:

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