Java 如何使字符串能够';这不是数字
如果您使用变量类型字符串,您仍然可以输入数字 例如: “输入名称:123”Java 如何使字符串能够';这不是数字,java,Java,如果您使用变量类型字符串,您仍然可以输入数字 例如: “输入名称:123” 该名称仍被接受。如何使变量名只接受字母,否则将显示错误消息?您不必将用户输入限制为仅限数字,但您可以验证该输入以确保其满足您的期望。例如,如果要确保字符串不包含任何数字,可以执行以下操作: if(str.matches(".*\\d.*")){ // contains a number } else{ // does not contain a number } 我不知道任何本机函数可以实现这一点,但是您可
该名称仍被接受。如何使变量名只接受字母,否则将显示错误消息?您不必将用户输入限制为仅限数字,但您可以验证该输入以确保其满足您的期望。例如,如果要确保字符串不包含任何数字,可以执行以下操作:
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、 你的回答只有两个条件,而且问题只要求字母。很公平,如果你在回答中添加此警告,我将收回我的否决票。我认为提问者要求拒绝任何字符是数字,而不是所有字符都是数字。