Vérifier si un Char est bien au bon format

Résolu
Potame137 Messages postés 32 Date d'inscription   Statut Membre Dernière intervention   -  
Potame137 Messages postés 32 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

bonjour je cherche a entrer 10 Char et de vérifié si il sont au bon format, c'est a dire de deux lettres en majuscule et 10 chiffre et une autre majuscule a la fin, exemple AB0123456789C.

ya t'il une méthode pour vérifier or length() ?


public class test {

    public static void main(String[] args) {
     
     char [] Tab = new char [10];
        char x ;
        boolean b;
               
        for(int i=0;i<10;i++)
        {
         
         System.out.print("Donner le mot numero "+(i+1)+" : ");
          x=Lire.c();

        }
        
     
 }
}
A voir également:

2 réponses

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Bonjour,

Comment ton format "deux lettres en majuscule et 10 chiffre et une autre majuscule a la fin" pourrait être vérifié si tu ne saisis que 10 char ? Il t'en faudrait au moins 13 pour écrire AB0123456789C

Ceci mis à part, en Java, comme dans la plupart des langages informatiques, tu peux manipuler des expressions régulières qui te permettent de faire ce genre de vérifications.

Voir la méthode String.matches(String) par exemple.
https://docs.oracle.com/javase/10/docs/api/java/lang/String.html#matches(java.lang.String)
1
Potame137 Messages postés 32 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour ,
je n'ai pas compris comment marche le String.matches, sont but et de renvoillier true si la chaîne correspond
a l'éxpresion réguliére donnée mais l exemple l'exemple n'est pas parlant.
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020 > Potame137 Messages postés 32 Date d'inscription   Statut Membre Dernière intervention  
 
Dans cette documentation, il y a aussi le lien vers le format des expressions régulières en Java, une information exhaustive, même si ça reste relativement standard et commun aux autres langages dont tu trouveras plein d'exemple sur internet.
0
Potame137 Messages postés 32 Date d'inscription   Statut Membre Dernière intervention  
 
voila mon code mais je n'arrive pas a faire autre chose que renvoillier AB123456789C true alors que je veux aussi que d'autre entrée telle que AZ147258369P return true comment faire ?



import java.io.*;
import java.util.Scanner;



public class Test4 {




public static void main(String args[]) {
String Str = new String("AB123456789C");

String [] tab = new String [10] ;


for(int i = 0; i <= 10; i++) {


System.out.println("Entrez Deux majuscule, neuf chiffre et une majuscule ");
tab[i]= Lire.S();

System.out.print("Return Value :" );
System.out.println(Str.matches(tab[i]));



}


}
}
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Str.matches(tab[i])
c'est dans l'autre sens que ça s’utilise. Ici c'est toujours "AB123456789C" que tu vérifies comme correspondant à l'expression régulière que tu saisis, or il faudrait faire l'inverse, vérifier ce que tu saisis avec une expression régulière fixée, puisque ton format ne va pas changer.

String regex = "[A-Z]{2}[0-9]{9}[A-Z]";
String s = Lire.S();
System.out.println(s.matches(regex));

Voir https://regex101.com/r/jrsZbM/1
0
Potame137 Messages postés 32 Date d'inscription   Statut Membre Dernière intervention  
 
Ok super j'ai compris merci !
0