JAVA : comparaison de deux String de formats différents
Résolu/Fermé
Milly7534
Messages postés
26
Date d'inscription
jeudi 12 juin 2014
Statut
Membre
Dernière intervention
27 avril 2015
-
12 juin 2014 à 15:08
Milly7534 Messages postés 26 Date d'inscription jeudi 12 juin 2014 Statut Membre Dernière intervention 27 avril 2015 - 20 juin 2014 à 11:30
Milly7534 Messages postés 26 Date d'inscription jeudi 12 juin 2014 Statut Membre Dernière intervention 27 avril 2015 - 20 juin 2014 à 11:30
A voir également:
- JAVA : comparaison de deux String de formats différents
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Télécharger jeux java gameloft gratuit - Forum Mobile
- Java décompiler - Télécharger - Langages
6 réponses
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
Modifié par KX le 12/06/2014 à 22:37
Modifié par KX le 12/06/2014 à 22:37
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
Dinath
Messages postés
1602
Date d'inscription
vendredi 12 avril 2013
Statut
Contributeur sécurité
Dernière intervention
6 novembre 2021
218
12 juin 2014 à 16:44
12 juin 2014 à 16:44
Double +1 pour le pseudo ;-)
Tu devrais t'inscrire.
Tu devrais t'inscrire.
ProvencaleLeGaulois
Messages postés
48
Date d'inscription
lundi 2 juin 2014
Statut
Membre
Dernière intervention
18 septembre 2014
6
12 juin 2014 à 16:47
12 juin 2014 à 16:47
Je suis inscrit mais j'ai posté le message sans être connecté ;)
Merci pour le plussoiement et mes respects au fan de Kaamelott :)
Merci pour le plussoiement et mes respects au fan de Kaamelott :)
Dinath
Messages postés
1602
Date d'inscription
vendredi 12 avril 2013
Statut
Contributeur sécurité
Dernière intervention
6 novembre 2021
218
12 juin 2014 à 17:06
12 juin 2014 à 17:06
Haha mais de rien, tu es une légende après tout ;-)
Dinath
Messages postés
1602
Date d'inscription
vendredi 12 avril 2013
Statut
Contributeur sécurité
Dernière intervention
6 novembre 2021
218
12 juin 2014 à 16:06
12 juin 2014 à 16:06
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 :)
Milly7534
Messages postés
26
Date d'inscription
jeudi 12 juin 2014
Statut
Membre
Dernière intervention
27 avril 2015
12 juin 2014 à 16:22
12 juin 2014 à 16:22
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
Dinath
Messages postés
1602
Date d'inscription
vendredi 12 avril 2013
Statut
Contributeur sécurité
Dernière intervention
6 novembre 2021
218
12 juin 2014 à 16:30
12 juin 2014 à 16:30
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 ?
Milly7534
Messages postés
26
Date d'inscription
jeudi 12 juin 2014
Statut
Membre
Dernière intervention
27 avril 2015
12 juin 2014 à 16:37
12 juin 2014 à 16:37
C'est ça ! Mais comme je veux faire une fonction générique, ça me bloque....je me demande si c'est possible ou s'il faut connaître le format des chaînes à l'avance.
Sinon oui, j'aimerais qu'elle renvoie true si elle trouve la chaîne (en se fichant des majuscules ou des minuscules) et le bon nombre.
Sinon oui, j'aimerais qu'elle renvoie true si elle trouve la chaîne (en se fichant des majuscules ou des minuscules) et le bon nombre.
Dinath
Messages postés
1602
Date d'inscription
vendredi 12 avril 2013
Statut
Contributeur sécurité
Dernière intervention
6 novembre 2021
218
12 juin 2014 à 16:44
12 juin 2014 à 16:44
ProvencaleLeGaulois
Messages postés
48
Date d'inscription
lundi 2 juin 2014
Statut
Membre
Dernière intervention
18 septembre 2014
6
Modifié par ProvencaleLeGaulois le 12/06/2014 à 17:46
Modifié par ProvencaleLeGaulois le 12/06/2014 à 17:46
Hello,
Et si tu ne veux pas tenir compte des majuscules, tu peux faire :
A+
Et si tu ne veux pas tenir compte des majuscules, tu peux faire :
String a = "loOOOol"; if(a.toLowerCase().matches(".*ooo.*")){ System.out.println("ok"); }
A+
Milly7534
Messages postés
26
Date d'inscription
jeudi 12 juin 2014
Statut
Membre
Dernière intervention
27 avril 2015
12 juin 2014 à 21:53
12 juin 2014 à 21:53
Merci pour l'exemple.
Hélas, ça ne marche pas avec mes données :(
Hélas, ça ne marche pas avec mes données :(
Milly7534
Messages postés
26
Date d'inscription
jeudi 12 juin 2014
Statut
Membre
Dernière intervention
27 avril 2015
20 juin 2014 à 11:30
20 juin 2014 à 11:30
Merci pour votre aide, j'ai réussi à coder mes fonctions ! :)
13 juin 2014 à 09:24
On les convertit donc avec les deux regex du début. Mais j'ai du mal avec les symboles, elles signifient quoi ?
13 juin 2014 à 18:23
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.
20 juin 2014 à 11:29