Vérifier si un Char est bien au bon format

Résolu/Fermé
Potame137 Messages postés 32 Date d'inscription lundi 23 mai 2016 Statut Membre Dernière intervention 17 août 2020 - Modifié le 26 juin 2018 à 22:17
Potame137 Messages postés 32 Date d'inscription lundi 23 mai 2016 Statut Membre Dernière intervention 17 août 2020 - 28 juin 2018 à 08:32
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 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
26 juin 2018 à 22:36
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 lundi 23 mai 2016 Statut Membre Dernière intervention 17 août 2020
27 juin 2018 à 18:02
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 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015 > Potame137 Messages postés 32 Date d'inscription lundi 23 mai 2016 Statut Membre Dernière intervention 17 août 2020
27 juin 2018 à 19:36
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 lundi 23 mai 2016 Statut Membre Dernière intervention 17 août 2020
28 juin 2018 à 01:17
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 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
28 juin 2018 à 08:09
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 lundi 23 mai 2016 Statut Membre Dernière intervention 17 août 2020
28 juin 2018 à 08:32
Ok super j'ai compris merci !
0