Java 如果字符串仅包含所需的字符,请选中。如果否-从扫描仪输入新字符串

Java 如果字符串仅包含所需的字符,请选中。如果否-从扫描仪输入新字符串,java,regex,while-loop,matcher,Java,Regex,While Loop,Matcher,用户在控制台中输入一个字符串 Scanner sc = new Scanner sc.nextLine(); 此字符串应仅包含符号A、B、C、D、F(可能是这样的:AAABCCDDD 如果字符串包含至少1个错误字符(不是A、B、C、D、F),则-> 用户应重新键入此字符串 如果字符串正确->程序 应该停止 谢谢!您可以使用do..while循环: public class Test { public static void main(String[] args) { St

用户在控制台中输入一个字符串

Scanner sc = new Scanner
sc.nextLine();
此字符串应仅包含符号
A、B、C、D、F
(可能是这样的:
AAABCCDDD

  • 如果字符串包含至少1个错误字符(不是
    A、B、C、D、F
    ),则-> 用户应重新键入此字符串
  • 如果字符串正确->程序 应该停止

谢谢!

您可以使用do..while循环:

public class Test {
   public static void main(String[] args) {
      String s;
      do {
        System.out.println("Eingabe: ");
        Scanner sc = new Scanner(System.in);
        s =sc.nextLine();
      }while (checkInput(s));
    }

    public static boolean checkInput(String s){
      if (s.matches("[ABCDE]+")){
        return false;
      }
      return true;
    }
}

由于“没有研究工作”,此问题似乎与主题无关。请参阅javadoc中的String.matches(正则表达式)。您需要使用的是正则表达式。例如:[^A][^B][^C][^D][^F](不是A或B…或F)