जांचें कि उपयोगकर्ता केवल स्ट्रिंग में अक्षरों में डालता है या नहीं

मैं जावा में नया हूं और मैं जानना चाहता हूं कि आप कैसे जांचते हैं कि उपयोगकर्ता ने अपने नाम के लिए केवल अक्षरों में टाइप किया है या नहीं। अगर वे फिर से उनके नाम के लिए नहीं पूछते हैं।

System.out.print("Welcome - What is your family's surname? ");
familySurname = keyboard.nextLine();
while (familySurname.isEmpty())  
{
    System.out.print("Invalid name - What is your family's surname? ");
    familySurname = keyboard.nextLine();
    if (familySurname.matches("[a-zA-Z]"))
    {
        System.out.println("Invalid Input.");
    }
}

यह कोड मेरे पास अभी तक है, लेकिन यह अभी भी संख्याओं को स्वीकार कर रहा है।

0

5 उत्तर

आपकी लूप स्थिति होना चाहिए:

 while (!familySurname.matches("[a-zA-Z]+")){
     System.out.print("Invalid name - What is your family's surname? ");
     familySurname = keyboard.nextLine();
 }
0
जोड़ा

क्या आप इसे कैप्चर और ट्रिम नहीं करना चाहते हैं?

System.out.print("Welcome - What is your family's surname? ");
String familySurname = "";
while (familySurname.length() == 0) {//while we don't have a surname.
  if (keyboard.hasNextLine()) {//check that there is a line of input.
    familySurname = keyboard.nextLine().trim();//get the line and trim() it.
    for (char c : familySurname.toCharArray()) {
      if (!Character.isLetter(c)) {//Test for not a letter.
        System.out.print("Invalid name - What is your family's surname? ");
        familySurname = "";
        break;
      }
    }
  }
}
0
जोड़ा
if (!familySurname.matches("[a-zA-Z]+"))//need ! and +
0
जोड़ा

या गति के लिए-

public static boolean isAlpha(final String value) {

    if(value == null || value.isEmpty()){
        return false;
    }

    char[] chars = value.toCharArray();

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

    return true;
}

और आपके स्निपेट को संशोधित किया जा सकता है-

while (!isAlpha(familySurname)){

    System.out.print("Invalid name - What is your family's surname? ");
    familySurname = keyboard.nextLine();

}
0
जोड़ा
System.out.print("Welcome - What is your family's surname? ");
    familySurname = keyboard.nextLine();
    while (familySurname.isEmpty())  
    {
        System.out.print("Invalid name - What is your family's surname? ");
        familySurname = keyboard.nextLine();
        if (!familySurname.isLetter(source.charAt(i)))
        return "";
    }
0
जोड़ा