Java 如何使字符串能够';这不是数字

Java 如何使字符串能够';这不是数字,java,Java,如果您使用变量类型字符串,您仍然可以输入数字 例如: “输入名称:123” 该名称仍被接受。如何使变量名只接受字母,否则将显示错误消息?您不必将用户输入限制为仅限数字,但您可以验证该输入以确保其满足您的期望。例如,如果要确保字符串不包含任何数字,可以执行以下操作: if(str.matches(".*\\d.*")){ // contains a number } else{ // does not contain a number } 我不知道任何本机函数可以实现这一点,但是您可

如果您使用变量类型字符串,您仍然可以输入数字

例如:

“输入名称:123”


该名称仍被接受。如何使变量名只接受字母,否则将显示错误消息?

您不必将用户输入限制为仅限数字,但您可以验证该输入以确保其满足您的期望。例如,如果要确保字符串不包含任何数字,可以执行以下操作:

if(str.matches(".*\\d.*")){
   // contains a number
} else{
   // does not contain a number
}

我不知道任何本机函数可以实现这一点,但是您可以简单地读取字符串(每个字符一个字符),然后询问值是否在65到90(大写字母)或97到122(普通字母)之间

守则是:

    String string = "ABCD";
    boolean hasOtherCharacters = false;
    for ( int i = 0; i < string.length();i++ )
    {
        if ( !(string.charAt(i) >= 65 && string.charAt(i) <= 90) && !(string.charAt(i) >= 97 && string.charAt(i) <= 122) )
        {
            hasOtherCharacters = true;
            break; 
        }
    }

    if ( hasOtherCharacters )
    {
        //WHATEVER YOU WANT
String String=“ABCD”;
布尔hasOtherCharacters=false;
对于(int i=0;i如果(!(string.charAt(i)>=65&&string.charAt(i)=97&&string.charAt(i)没有任何附加库的帮助,您只需使用Javas模式匹配器:

Pattern p = Pattern.compile("\\D*");

String test1 = "abc";
String test2 = "abc123";

Matcher m1 = p.matcher(test1);
System.out.println("does test1 only contain letters? " + m1.matches());         
//prints true

Matcher m2 = p.matcher(test2);
System.out.println("does test2 only contain letters? " + m2.matches());
//prints false

如果使用JTextField或允许侦听器(而不仅仅是命令行)的内容,可以防止用户使用KeyListener输入数字:

userEntry.addKeyListener(new KeyAdapter() {
    @Override
    public void keyTyped(KeyEvent e) {
        if (Character.isDigit(e.getKeyChar())) {
            e.consume();
        }
    }
});

您可以使用lambda表达式检查字符串是否为数字:

String myString = "abcdef1234567890";

if (myString.chars().allMatch( Character::isDigit ))

如果字符串仅包含数字,则输出为真。或者,如果用户输入ç或ç?这取决于您的语言,则只需扩展if语句中的实现。祝您好运,只需扩展即可。如果输入为纯ASCII,则此解决方案有效;如果您需要unicode,则使用此解决方案只是重新发明wheel、 你的回答只有两个条件,而且问题只要求字母。很公平,如果你在回答中添加此警告,我将收回我的否决票。我认为提问者要求拒绝任何字符是数字,而不是所有字符都是数字。