检查java中的非字符串值
我无法使用公共方法检查非字符串值,例如a-z和a-z检查java中的非字符串值,java,Java,我无法使用公共方法检查非字符串值,例如a-z和a-z Scanner input = new Scanner(System.in); System.out.print("Enter your First Name: "); String First_name = input.nextLine(); Scanner last = new Scanner(System.in); System.out.print("Enter your Last Name: "); String Last_nam
Scanner input = new Scanner(System.in);
System.out.print("Enter your First Name: ");
String First_name = input.nextLine();
Scanner last = new Scanner(System.in);
System.out.print("Enter your Last Name: ");
String Last_name = last.nextLine();
public static boolean check_non_string_value (String First_name, String Last_name){
// dont know how to check the input here
}
这里是公共方法
Scanner input = new Scanner(System.in);
System.out.print("Enter your First Name: ");
String First_name = input.nextLine();
Scanner last = new Scanner(System.in);
System.out.print("Enter your Last Name: ");
String Last_name = last.nextLine();
public static boolean check_non_string_value (String First_name, String Last_name){
// dont know how to check the input here
}
您可以使用正则表达式,但自己循环每个字符串并使用检查每个字符也相对简单:
for (char c : firstName.toCharArray()) {
if (!Character.isLetter(c))
return false;
}
for (char c : lastName.toCharArray()) {
if (!Character.isLetter(c))
return false;
}
return true;
请注意,我使用了更传统的名称:firstName和lastName。您应该始终尝试遵循Java的命名约定,即使用。方法名称也应为checkNonStringValue
使用正则表达式,您可以执行以下操作:
private static final Pattern letters = Pattern.compile("\\p{Alpha}+");
...
return letters.matcher(firstName).matches() &&
letters.matcher(lastName).matches();
\p{Alpha}是一个预定义的字符类,表示[a-zA-Z]。有关更多详细信息,请参阅。您可以使用正则表达式,但自己循环每个字符串并使用它检查每个字符也相对简单:
for (char c : firstName.toCharArray()) {
if (!Character.isLetter(c))
return false;
}
for (char c : lastName.toCharArray()) {
if (!Character.isLetter(c))
return false;
}
return true;
请注意,我使用了更传统的名称:firstName和lastName。您应该始终尝试遵循Java的命名约定,即使用。方法名称也应为checkNonStringValue
使用正则表达式,您可以执行以下操作:
private static final Pattern letters = Pattern.compile("\\p{Alpha}+");
...
return letters.matcher(firstName).matches() &&
letters.matcher(lastName).matches();
\p{Alpha}是一个预定义的字符类,表示[a-zA-Z]。有关详细信息,请参阅。此方法对a-z和a-z字符有效
public static boolean check_non_string_value (String First_name, String Last_name){
if(First_name.matches("[a-zA-Z]+")&&Last_name.matches("[a-zA-Z]+")){
system.out.println("Valid input");
return true;
}
return false;
}
public static boolean check_non_string_value (String First_name, String Last_name){
if(First_name.matches("\\w")&&Last_name.matches("\\w")){
system.out.println("Valid input");
return true;
}
return false;
}
此方法对所有单词字符都有效
public static boolean check_non_string_value (String First_name, String Last_name){
if(First_name.matches("[a-zA-Z]+")&&Last_name.matches("[a-zA-Z]+")){
system.out.println("Valid input");
return true;
}
return false;
}
public static boolean check_non_string_value (String First_name, String Last_name){
if(First_name.matches("\\w")&&Last_name.matches("\\w")){
system.out.println("Valid input");
return true;
}
return false;
}
此方法对a-z和a-z字符有效
public static boolean check_non_string_value (String First_name, String Last_name){
if(First_name.matches("[a-zA-Z]+")&&Last_name.matches("[a-zA-Z]+")){
system.out.println("Valid input");
return true;
}
return false;
}
public static boolean check_non_string_value (String First_name, String Last_name){
if(First_name.matches("\\w")&&Last_name.matches("\\w")){
system.out.println("Valid input");
return true;
}
return false;
}
此方法对所有单词字符都有效
public static boolean check_non_string_value (String First_name, String Last_name){
if(First_name.matches("[a-zA-Z]+")&&Last_name.matches("[a-zA-Z]+")){
system.out.println("Valid input");
return true;
}
return false;
}
public static boolean check_non_string_value (String First_name, String Last_name){
if(First_name.matches("\\w")&&Last_name.matches("\\w")){
system.out.println("Valid input");
return true;
}
return false;
}
检查正则表达式。你在检查什么?我想你指的是非字母字符,而不是非字符串值。搜索正则表达式、模式匹配以及字符串标记。我想指出,限制有效的名字和姓氏仅包含A-Z是值得怀疑的,但最具侮辱性的狭隘观点除外上下文。检查正则表达式。你在检查什么?我想你指的是非字母字符而不是非字符串值。搜索正则表达式、模式匹配以及字符串标记。我想指出,限制有效的名字和姓氏仅包含A-Z在所有方面都是有问题的,但最具侮辱性的是狭隘的上下文。这只匹配一个字母。\w相当于[a-zA-Z_0-9],因此您将匹配my_nam3,但不匹配Jérémy。无需[\\w]\\w就够了。此外,这也将匹配数字和u。这里仍然存在问题。1.您需要从这两个方法返回布尔值。2.这将是一个更好的主意,尤其是如果经常调用此方法来预编译此正则表达式以避免冗余。这只匹配一个字母。\w相当于[a-zA-Z_0-9],因此您将匹配my_nam3而不是Jérémy。无需[\\w]\\w就够了。此外,这也将匹配数字和u。这里仍然存在问题。1.您需要从这两个方法返回布尔值。2.这将是一个更好的主意,尤其是如果经常调用此方法来预编译此正则表达式以避免冗余。