2014-07-07 6 views
-2

L'utilisateur saisit une chaîne dans la console.Cochez si String ne contient que les caractères nécessaires. Si non, entrez new String from Scanner

Scanner sc = new Scanner 
sc.nextLine(); 

Cette chaîne ne doit contenir que des symboles A,B,C,D,F (il est possible d'être quelque chose comme ceci: AAABCCDDD

  • Si la chaîne contient au moins 1 faux (non A,B,C,D,F) caractère -> utilisateur doit re- saisissez cette chaîne
  • Si la chaîne est correcte -> le programm devrait arrêter

Merci!

+7

Cette question semble être hors-sujet en raison de « Aucun effort de recherche. » –

+0

Voir javadoc pour String.matches (regex). – laune

+0

ce que vous devez utiliser est une expression régulière. par exemple quelque chose comme ceci: [^ A] [^ B] [^ C] [^ D] [^ F] (PAS A ou B ... ou F) – nafas

Répondre

2

Vous pouvez utiliser le faire .. 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; 
    } 
}