【问题标题】:Random Generator with Strings ? (Java)带字符串的随机生成器? (爪哇)
【发布时间】:2015-04-05 14:23:23
【问题描述】:

大家好

我学习 Java,我将编写一个随机生成器,但使用字符串...我的意思是作为示例

用户给出字符串:Ass、Pet、Dog 现在生成器使用字符串随机连接单词。

现在我有:

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

【问题讨论】:

    标签: java string random generator


    【解决方案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 循环)。

    【讨论】:

    • 谢谢,但我是 Germa 人。我想我有错误的翻译。输出没问题。我的问题是随机连接用户输入的关键字。所以我的意思是在输入中是 Worde Ex1 ex2 和 ex3 所以现在当用户单击按钮时,我将程序随机连接单词并且当所有单词随机连接时生成器停止
    • 哦,对不起,错误的评论框:D 感谢您的帮助
    • 很高兴它有帮助,如果您喜欢它,您可以投票并选择它作为答案,除非答案在某些方面不完整。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-25
      • 1970-01-01
      • 1970-01-01
      • 2011-05-20
      • 1970-01-01
      相关资源
      最近更新 更多