JAVA : comparaison de deux String de formats différents
Résolu
Milly7534
Messages postés
26
Date d'inscription
Statut
Membre
Dernière intervention
-
Milly7534 Messages postés 26 Date d'inscription Statut Membre Dernière intervention -
Milly7534 Messages postés 26 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- JAVA : comparaison de deux String de formats différents
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
6 réponses
Bonsoir,
Pour comparer des String de formats différents, il faut d'abord les convertir dans un format commun puis les comparer normalement. Exemple :
Pour comparer des String de formats différents, il faut d'abord les convertir dans un format commun puis les comparer normalement. Exemple :
import java.util.regex.Matcher; import java.util.regex.Pattern; public class Test { private static final Pattern PATTERN_1 = Pattern.compile("[A-Z]+-([0-9]+)([a-z]+[0-9]+)"); private static final Pattern PATTERN_2 = Pattern.compile("([0-9]+)-([A-Z]+[0-9]+)"); public static String convert(String str) { Matcher matcher1 = PATTERN_1.matcher(str); if (matcher1.matches()) return matcher1.group(1) + matcher1.group(2); Matcher matcher2 = PATTERN_2.matcher(str); if (matcher2.matches()) return matcher2.group(1) + matcher2.group(2).toLowerCase(); return str; } public static boolean compare(String str1, String str2) { return convert(str1).equals(convert(str2)); } public static void main(String[] args) { String str1 = "10-CHAINE3"; String str2 = "AA-10chaine3"; System.out.println(convert(str1)); // 10chaine3 System.out.println(convert(str2)); // 10chaine3 System.out.println(compare(str1, str2)); // true } }La confiance n'exclut pas le contrôle
Hello,
Je pense qu'il te faut utiliser la fonction matches :
Retourne ok.
Mon programme retournera ok pour tous les Strings qui contiennent "ooo".
Source :
https://stackoverflow.com/questions/15130309/how-to-use-regex-in-string-contains-method-in-java
Je pense qu'il te faut utiliser la fonction matches :
String a = "looool"; if(a.matches(".*ooo.*")){ System.out.println("ok"); }
Retourne ok.
Mon programme retournera ok pour tous les Strings qui contiennent "ooo".
Source :
https://stackoverflow.com/questions/15130309/how-to-use-regex-in-string-contains-method-in-java
Salut,
Désolé je ne comprends pas.
Tu aurais un exemple précis ?
String 1 = ?
String 2 = ?
Que veux-tu comparer ?
C'est un peu flou :)
Désolé je ne comprends pas.
Tu aurais un exemple précis ?
String 1 = ?
String 2 = ?
Que veux-tu comparer ?
C'est un peu flou :)
Désolée ^^
Voici un exemple concret :
Le paramètre de ma fonction (le string dont je cherche à vérifier l'existence) = AA-10chaine3
Mon fichier :
01-CHAINE1
02-CHAINE3
10-CHAINE2
...
10-CHAINE3
La chaîne correcte parmi celles du fichier est "10-CHAINE3" car on retrouve à la fois le 10 et chaine3.
Donc si mon paramètre est "AA-10chaine3", ma fonction doit me renvoyer qu'il y a bien une occurrence dans le fichier car il existe "10-CHAINE3".
Mais comment s'y prendre pour que la fonction y arrive ?
J'espère que c'est plus clair :)
Voici un exemple concret :
Le paramètre de ma fonction (le string dont je cherche à vérifier l'existence) = AA-10chaine3
Mon fichier :
01-CHAINE1
02-CHAINE3
10-CHAINE2
...
10-CHAINE3
La chaîne correcte parmi celles du fichier est "10-CHAINE3" car on retrouve à la fois le 10 et chaine3.
Donc si mon paramètre est "AA-10chaine3", ma fonction doit me renvoyer qu'il y a bien une occurrence dans le fichier car il existe "10-CHAINE3".
Mais comment s'y prendre pour que la fonction y arrive ?
J'espère que c'est plus clair :)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
D'accord, on va tout reprendre :)
C'est un algo de ce style que tu veux ?
Donc tu veux simplement comparer AA-10chaine3 et 10-CHAINE3 ?
function (String s="AA-10chaine3") {
traitement...
si correspondance entre s et "10-CHAINE3" on retourne vrai
}
C'est un algo de ce style que tu veux ?
Donc tu veux simplement comparer AA-10chaine3 et 10-CHAINE3 ?
On les convertit donc avec les deux regex du début. Mais j'ai du mal avec les symboles, elles signifient quoi ?
Tu trouveras toute la documentation sur le format des regex en Java dans la javadoc de la classe Pattern :
https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html
Ceci dit, les expressions que j'ai utilisé sont très basiques et tout les langages courants les utilise donc tu peux prendre n'importe quelle documentation pour les comprendre, y a vraiment rien de difficile ici.