只包含字母,空格,连字符和单引号的字符串

问题描述:

编程新手我想制作一个关于某个程序的程序,并且在此程序中,此人必须输入一个名称,其名称可以由字母,空格组成,只有一个单引号和一个连字符。如果名称具有非法字符,用户必须重新输入名称。我想用for循环代码,我该怎么做?只包含字母,空格,连字符和单引号的字符串

+0

有很多方法做到这一点,你试过什么? – nafas

您可以定义一个自定义方法来检查字符串是否合法。您可以使用charAt(int)方法检查java的每个字符和Character.isLetter(char)方法,以检查它是否是一个字母。 例如。

public boolean checkString(String str) { 
    for (int i = 0; i < str.length(); i++) { 
     if (!(Character.isLetter(str.charAt(i)) || 
       str.charAt(i) == ' ' || 
       str.charAt(i) == '-' || 
       str.charAt(i) == '\'')) 
     { 
      System.out.println("Re-enter the string"); 
      return false; 
     } else { 
      return true; 
     } 
    } 
} 
+0

我明白了,我可以添加一个while while循环吗? – BillyLee