1

public メソッドを使用して az や AZ などの非文字列値を確認できません

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
} 
4

2 に答える 2

3

正規表現を使用できますが、各文字列を自分でループして各文字Character.isLetter()をチェックするのも比較的簡単です。

for (char c : firstName.toCharArray()) {
    if (!Character.isLetter(c))
        return false;
}

for (char c : lastName.toCharArray()) {
    if (!Character.isLetter(c))
        return false;
}

return true;

より慣習的な名前を使用していることに注意してください:firstNamelastName. 常に Java の命名規則に従うようにしてください (つまり、camelCaseを使用します)。メソッド名もcheckNonStringValue.

正規表現を使用すると、次のようなことができます。

private static final Pattern letters = Pattern.compile("\\p{Alpha}+");

...
    return letters.matcher(firstName).matches() &&
           letters.matcher(lastName).matches();

\p{Alpha}定義済みの文字クラスの意味[a-zA-Z]です。詳細については、を参照Patternしてください。

于 2013-10-09T13:39:33.480 に答える
1

このメソッドは az および Az 文字に有効です

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;
}  
于 2013-10-09T13:40:35.360 に答える