4 回答

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

TA貢獻1824條經驗 獲得超5個贊
錯誤是hasDigit = Character.isDigit(passCode); Character.isDigit()需要一個字符作為參數,但您傳遞了字符串。所以糾正這個將字符串轉換為字符。你可以試試
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貢獻1963條經驗 獲得超6個贊
Scanner.next 方法將從輸入流返回整個標記(通常是單詞)。這些詞是字符串。Character.isDigit 函數需要一個字符作為輸入,而不是一個字符串。
您可以循環該單詞,將每個字母作為字符獲取并測試它們:
for (int i = 0; i < passCode.length(); i++){
char c = passCode.charAt(i);
if (Character.isDigit(c)) {
hasDigit = true;
}
}

TA貢獻1831條經驗 獲得超9個贊
我發現這對我有用。我使用 charAt() 將字符串中的每個指定索引設置為字符值。從那里我創建了一個 if 語句,如果任何 char 變量有數字,則將 hasDigit 設置為 true,使用 Character.isDigit()?
添加回答
舉報