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
答案 0 :(得分:1)
以下是使用Random
,ArrayList
和StringBuilder
将多个字符串随机连接在一起的另一种方法:
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);