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()
添加回答
举报