java: 尝试使用 .isDigit() 时找不到符号
java: cannot find a symbol when trying to use .isDigit()
在我的 IDE 和在线 IDE 我的教科书 Zybooks.com 都试过了,我的目标是检查变量 passCode
包含一个数字。这是代码:
public class CheckingPasscodes{
public static void main (String [] args) {
boolean hasDigit = false;
String passCode = "";
int valid = 0;
passCode = "abc";
if (passCode.isDigit(passCode.charAt(0)) || passCode.isDigit(passCode.charAt(1)) || passCode.isDigit(passCode.charAt(2))) {
hasDigit = true;
}
if (hasDigit) {
System.out.println("Has a digit.");
}
else {
System.out.println("Has no digit.");
}
}
}
我在第 9 行(第一个 if
开始的地方)收到错误:
java: cannot find symbol
symbol: method isDigit(char)
location: variable passCode of type java.lang.String
尝试将 passCode.charAt(0)
(或 1 和 2)更改为简单的 'a'
(或 'b' 和 'c')以测试它是否是因为我正在放置一个方法在另一个方法中,但我似乎得到了同样的错误。
我最终通过询问朋友解决了这个问题,他向我提供了这个,而不是:
char s = passCode.charAt(0);
char s1 = passCode.charAt(1);
char s2 = passCode.charAt(2);
if ((s>'0' && s<'9') || (s1>'0' && s1<'9') || (s2>'0' && s2<'9')) {
hasDigit=true;
}
这很有道理,我确实想过做类似的事情,但是这个练习所在的章节不是关于 .charAt()
——我们之前已经讲过了——而是关于 .isDigit()
和其他字符操作,所以我所做的只是作弊。
这让我抓狂。
P.S.: 我是 Java 的新手,所以,如果答案真的很明显,我真的很抱歉。感谢您花时间阅读所有这些内容!
java.lang.String 没有 isDigit 方法,仅适用于 Char class...
用作
boolean hasDigit = Character.isDigit('1');
您正在 String
对象上调用 .isDigit()
,它没有这样的方法。这是 static method of the Character
class.
Character.isDigit(passCode.charAt(0));
一个重要的提示是您的错误消息说明如下:
location: variable passCode of type java.lang.String
这应该会自动提示您查看 String
class 文档以查找您正在寻找的任何方法 - 随后发现它没有这样的方法。
在我的 IDE 和在线 IDE 我的教科书 Zybooks.com 都试过了,我的目标是检查变量 passCode
包含一个数字。这是代码:
public class CheckingPasscodes{
public static void main (String [] args) {
boolean hasDigit = false;
String passCode = "";
int valid = 0;
passCode = "abc";
if (passCode.isDigit(passCode.charAt(0)) || passCode.isDigit(passCode.charAt(1)) || passCode.isDigit(passCode.charAt(2))) {
hasDigit = true;
}
if (hasDigit) {
System.out.println("Has a digit.");
}
else {
System.out.println("Has no digit.");
}
}
}
我在第 9 行(第一个 if
开始的地方)收到错误:
java: cannot find symbol
symbol: method isDigit(char)
location: variable passCode of type java.lang.String
尝试将 passCode.charAt(0)
(或 1 和 2)更改为简单的 'a'
(或 'b' 和 'c')以测试它是否是因为我正在放置一个方法在另一个方法中,但我似乎得到了同样的错误。
我最终通过询问朋友解决了这个问题,他向我提供了这个,而不是:
char s = passCode.charAt(0);
char s1 = passCode.charAt(1);
char s2 = passCode.charAt(2);
if ((s>'0' && s<'9') || (s1>'0' && s1<'9') || (s2>'0' && s2<'9')) {
hasDigit=true;
}
这很有道理,我确实想过做类似的事情,但是这个练习所在的章节不是关于 .charAt()
——我们之前已经讲过了——而是关于 .isDigit()
和其他字符操作,所以我所做的只是作弊。
这让我抓狂。
P.S.: 我是 Java 的新手,所以,如果答案真的很明显,我真的很抱歉。感谢您花时间阅读所有这些内容!
java.lang.String 没有 isDigit 方法,仅适用于 Char class...
用作
boolean hasDigit = Character.isDigit('1');
您正在 String
对象上调用 .isDigit()
,它没有这样的方法。这是 static method of the Character
class.
Character.isDigit(passCode.charAt(0));
一个重要的提示是您的错误消息说明如下:
location: variable passCode of type java.lang.String
这应该会自动提示您查看 String
class 文档以查找您正在寻找的任何方法 - 随后发现它没有这样的方法。