![](/img/trans.png)
[英]Java isLetterOrDigit() method, isDigit(), isLetter()
[英]isLetter Method isn't working in Java
每次我写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;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.