4 回答

TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超5個(gè)贊
該方法Character.isDigit()
接受 achar
作為輸入 - 您試圖將 a 傳遞給它String
。
該錯(cuò)誤描述了問題所在:
參數(shù)不匹配;字符串無法轉(zhuǎn)換為字符

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超5個(gè)贊
錯(cuò)誤是hasDigit = Character.isDigit(passCode); Character.isDigit()需要一個(gè)字符作為參數(shù),但您傳遞了字符串。所以糾正這個(gè)將字符串轉(zhuǎn)換為字符。你可以試試
Scanner scnr = new Scanner(System.in);
boolean hasDigit;
char passCode;
hasDigit = false;
passCode = scnr.next().charAt(0);
hasDigit = Character.isDigit(passCode);
if (hasDigit) {
System.out.println("Has a digit.");
}
else {
System.out.println("Has no digit.");
}

TA貢獻(xiàn)1963條經(jīng)驗(yàn) 獲得超6個(gè)贊
Scanner.next 方法將從輸入流返回整個(gè)標(biāo)記(通常是單詞)。這些詞是字符串。Character.isDigit 函數(shù)需要一個(gè)字符作為輸入,而不是一個(gè)字符串。
您可以循環(huán)該單詞,將每個(gè)字母作為字符獲取并測(cè)試它們:
for (int i = 0; i < passCode.length(); i++){
char c = passCode.charAt(i);
if (Character.isDigit(c)) {
hasDigit = true;
}
}

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超9個(gè)贊
我發(fā)現(xiàn)這對(duì)我有用。我使用 charAt() 將字符串中的每個(gè)指定索引設(shè)置為字符值。從那里我創(chuàng)建了一個(gè) if 語(yǔ)句,如果任何 char 變量有數(shù)字,則將 hasDigit 設(shè)置為 true,使用 Character.isDigit()?
添加回答
舉報(bào)