检查java中的非字符串值

检查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

我无法使用公共方法检查非字符串值,例如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_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.这将是一个更好的主意,尤其是如果经常调用此方法来预编译此正则表达式以避免冗余。