首页 > 解决方案 > 预设字符中的非重复字符

问题描述

我想从列表中随机选择一个字母B, CD并确保它们不会重复。我试过这个,但它重复字母

public class Test {
    static Random r = new Random();    
    static char pickRandom(char... letters) {
        return letters[r.nextInt(letters.length)];
    }
    public static void main(String args[]) {
        for (int i = 0; i < 10; i++) {
            System.out.print(pickRandom('B', 'C', 'D'));
        }
    }
}

标签: java

解决方案


这将跟踪生成的最后一个字符。该程序将不断生成一个新字符,直到生成的字符与上一个字符不同。

char last = 0, next = 0;
for (int i = 0; i < 10; i++) {
    do {
        last = next;
        next = pickRandom('B', 'C', 'D');
    } while (next == last);
    System.out.print(next);
}

推荐阅读