将数组的随机字母另存为字符串

时间:2018-11-12 17:57:13

标签: java string

我想编写一个程序,其中字符串数组的不同字母根据随机顺序形成不同的单词。最重要的部分是字母不应该在一个单词中重复。我可以以某种方式做出正确的模式,但是问题是我只能在控制台上显示它们,而找不到找到将它们另存为String的方法(例如“ OMAN”)。这是我的代码:

int size = 4;
ArrayList<Integer> list = new ArrayList<Integer>(size);
Random rnd = new Random();
while (list.size()<size) {
    int random = rnd.nextInt(size);
    if (!list.contains(random)) {
        list.add(random);
    }
}
String[] words = {"M","O","A","N"};
for(int i=0 ; i<size ; i++){
    System.out.println(words[list.get(i)]);
}

3 个答案:

答案 0 :(得分:2)

您可以将它们累积到StringBuilder

StringBuilder sb = new StringBuilder(size);
for(int i = 0 ; i < size ; i++) {
    sb.append(words[list.get(i)]);
}
String result = sb.toString();

答案 1 :(得分:1)

首先声明一个空白字符串

String answer = "";

然后在您的for循环中执行

answer+=words[list.get(i)];

离开for循环

System.out.println(answer);

将拥有您想要的。为了更有效地执行此操作,我将阅读StringBuilder。

答案 2 :(得分:1)

您可以这样做,

    int size = 4;
    ArrayList<Integer> list = new ArrayList<Integer>(size);
    Random rnd = new Random();
    while (list.size() < size) {
        int random = rnd.nextInt(size);
        if (!list.contains(random)) {
            list.add(random);
        }
    }
    String[] words = {"M", "O", "A", "N"};
    String finalWord = "";
    for (int i = 0; i < size; i++) {
        finalWord += words[list.get(i)];
    }
    System.out.println(finalWord);