Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果输入不正确,如何使程序显示错误消息';不要以字母开头_Java - Fatal编程技术网

Java 如果输入不正确,如何使程序显示错误消息';不要以字母开头

Java 如果输入不正确,如何使程序显示错误消息';不要以字母开头,java,Java,就像标题上说的那样,我已经尝试了好几个小时了 System.out.print ("Please input the first name: "); name1 = in.next(); if (name1.substring(0,1).equals("[a-zA-Z]")) System.out.println("\t" + name1.substring(0,1).toUpperCase()+name1.substring(1).toLowerCase() + " is in the n

就像标题上说的那样,我已经尝试了好几个小时了

System.out.print ("Please input the first name: ");
name1 = in.next();

if (name1.substring(0,1).equals("[a-zA-Z]"))
System.out.println("\t" + name1.substring(0,1).toUpperCase()+name1.substring(1).toLowerCase() + "  is in the name list");

else if (name1.substring(0,1).equals("[0-9]"));
System.out.println("error");
这是代码中不适合我的部分。 我真的不知道哪里出了问题,我是个初学者。 无论我写什么代码,都会返回第二个System.out.println,这是一个错误。如果字符串不是以数字开头,我希望程序显示一条错误消息。另外,请使用if语句来执行此操作,因为我无法使用我没有涵盖的内容,否则我会搜索它。

这应该可以:

if(!Character.isAlphabetic(name1.charAt(0)) {
    //it's not a letter
}
这应该做到:

if(!Character.isAlphabetic(name1.charAt(0)) {
    //it's not a letter
}
我建议您在初始化变量时使用、命名并定义它们。差不多

Scanner in = new Scanner(System.in);
System.out.print ("Please input the first name: ");
String firstName = in.next();
if (Character.isLetter(firstName.charAt(0))) {
    // It is a letter.
} else {
    // It is not a letter.
}
我建议您在初始化变量时使用、命名并定义它们。差不多

Scanner in = new Scanner(System.in);
System.out.print ("Please input the first name: ");
String firstName = in.next();
if (Character.isLetter(firstName.charAt(0))) {
    // It is a letter.
} else {
    // It is not a letter.
}

如果要使用正则表达式,请使用
匹配项

if (name1.substring(0,1).matches("[a-zA-Z]"))

equals检查是否完全匹配。只有当您的第一个字母是“[a-zA-Z]”时才是真的,这永远不会发生。

如果要使用正则表达式,请使用
匹配项:

if (name1.substring(0,1).matches("[a-zA-Z]"))

equals检查是否完全匹配。只有当你的第一个字母是“[a-zA-Z]”时才是真的,这是永远不会发生的。

你一直得到第二个打印语句的原因是因为你添加了一个“;”如果出现以下情况,则在else之后:

改变

else if (name1.substring(0,1).equals("[0-9]"));


先去掉分号

之所以一直得到第二个print语句,是因为添加了“;”如果出现以下情况,则在else之后:

改变

else if (name1.substring(0,1).equals("[0-9]"));


先去掉分号

你认为
等于(“a-zA-Z”)
有什么作用?你为什么这么认为?确实如此
equals
不是正则表达式匹配。@SotiriosDelimanolis这是我在使用“contains”后认为它与contains相同的最后一个东西。如果试图在
Character.isAlphabetic
Character.isLetter
之间做出选择,请查看关于TL的帖子;博士,如果它总是英语的,那没关系:-)@Tarik:它稍微强一点,但我并不认为它是对这个的愚弄,因为Ascalonian已经详细阐述了它的原因。你认为
等于(“a-zA-Z”)
是什么,你为什么这么认为?确实如此
equals
不是正则表达式匹配。@SotiriosDelimanolis这是我在使用“contains”后认为它与contains相同的最后一个东西。如果试图在
Character.isAlphabetic
Character.isLetter
之间做出选择,请查看关于TL的帖子;博士,如果它总是英语的,那没关系:-)@Tarik:它稍微强一点,但我并不认为它是对这个的愚弄,因为Ascalonian已经详细阐述了原因。这是语法建议,你可以在评论中添加它,而不是在回答中添加它。尽管如此,这并不能解决问题。但我认为我的回答确实解释了为什么不管他输入什么,都会打印“错误”,这是问题的一部分。这是语法建议,你可以在评论中添加它,而不是在回答中添加。尽管如此,这并不能解决问题。但我认为我的回答确实解释了为什么他会被打印出“错误”,而不管他提供了什么作为输入,这是问题的一部分。谢谢你的回答,我还忘了问如果输入不是以字母开头,是否可以忽略输入。如果你能在这方面帮助我,我将不胜感激。@Abz刚刚看到你的留言。您可以对输入执行任何操作,包括“忽略”输入。但是您仍然需要首先接收带有变量的输入,否则无法检查第一个字母是否为字母。感谢您的回复我还忘了问如果输入不是以字母开头,是否可以忽略输入。如果你能在这方面帮助我,我将不胜感激。@Abz刚刚看到你的留言。您可以对输入执行任何操作,包括“忽略”输入。但是您仍然需要首先接收带有变量的输入,否则无法检查第一个字母是否为字母。