繁体   English   中英

isLetter方法在Java中不起作用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM