每次我写Character.isLetter(4))
它突出显示isLetter
...
请帮忙。我正在尝试制作一个程序,您必须告知年龄才能继续,但如果输入字母,则会弹出错误。
这是我的完整代码,并且不起作用。
import java.util.Scanner;
public class Prmtrs1
{
public static int user_age2;
public static String user_age;
public static void main(String args[]) {
Scanner input = new Scanner(System.in);
Prmtrs2 POblect = new Prmtrs2 ();
System.out.println("Type in your name in here! ");
String name = input.nextLine();
POblect.Hello(name);
System.out.println("");
System.out.println("Enter your age, " + name);
user_age = input.nextLine();
while(user_age.matches("\\d+")) {
System.out.println("enter numbers from 0 to 9");
user_age = input.nextLine();
}
System.out.println("Your age is " + user_age + ", " + name);
int user_age2 = Integer.parseInt(user_age);
if(user_age2 >= 18)
{
System.out.println("So...");
System.out.println("You are eligible to Vote, " + name + "!");
}
else{
System.out.println("So...");
System.out.println("You are not eligible to vote, " + name + "!");
}
}
}
最佳答案
您可能打算写Character.isLetter('4')
,'4'
是char
,而4
是int
。Character.isLetter
需要一个char
或int
codePoint。
您还应该考虑使用正则表达式并执行s.matches("\\d+")
(其中s
是输入字符串)以查看您的字符串是否仅由数字组成。 matches
函数采用正则表达式。
在示例中,我仅显示\d
表示“数字”,而+
表示“一个或多个”。
但是,如果要使用Character.isLetter
,可以这样进行:
for(char c : s.toCharArray()) {
if (Character.isLetter(c)) {
return false;
}
}