2 回答
TA貢獻(xiàn)1155條經(jīng)驗(yàn) 獲得超0個(gè)贊
這實(shí)際上是濫用正則表達(dá)式:D但
^(?!.*(\d).*\1)(?:[0-8] ){8}[0-8]$應(yīng)該這樣做。確保在不允許重復(fù)的部分只考慮數(shù)字;然后,您可以有八個(gè)數(shù)字空間對(duì),后跟一個(gè)數(shù)字在末尾(帶有正確的數(shù)字)。
TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超8個(gè)贊
我不確定您是否需要正則表達(dá)式??紤]使用 :Set
Scanner sc = new Scanner(System.in);
Set<Integer> set = new HashSet<>();
int count = 0;
while (count < 9) {
System.out.println("Enter a number:");
int num = sc.nextInt();
if (num >= 0 && num <= 8) {
set.add(num);
}
count++;
}
System.out.println(set.size() == 9);
或者,如果您的輸入一次性出現(xiàn):
String[] nums = sc.nextLine().split("\\s+");
for (String num : nums) {
set.add(Integer.parseInt(num));
}
您必須考慮檢查無(wú)效輸入?;蛘?,您可以在添加到集合之前先檢查是9,然后立即返回。numsfalse
添加回答
舉報(bào)
