begin process at 2010 02 10 05:53:19
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Java

 > 

Archives

 > 

Au secours

 > 

comparaison des chaînes de caractères


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

comparaison des chaînes de caractères

vendredi 9 décembre 2005 à 00:57:39 | comparaison des chaînes de caractères

amelA

bonjour,
comment pourrai je comparer deux chaînes de caractères?
sachant que j'ai eu les deux chaînes de caractères de la manière suivante:

//le premier mot:
String[] result = zone.getText().split("\\b");
// le texte est récupéré à partir de jTextArea
String mot1 =(String) result[x];//en utilisant une boucle
//le deuxième mot:
ResultSet cur1=req.executeQuery("select * from insign");
//insign une table à 2 colonnes (int,String)
String mot2 = cur1.getString(2);//en utilisant une boucle

j'ai essayer le (==) et la méthode "equals" mais ça n'a pas marché(le résultat est éronné).

merci.
vendredi 9 décembre 2005 à 01:12:06 | Re : comparaison des chaînes de caractères

jcodeunpeu

bonsoir,
== ne convient pas pour comparer 2 chaînes, mais equals oui, çà m'étonne que ça marche pas...
qu'entends tu par le résultat est erroné ?
si tu ne dois pas tenir compte des espaces, un trim() des deux chaînes avant comparaison est recommandé .... puis essayes aussi str1.compareTo(str2);
ps : =(String) result[x];// ici le cast est inutile puis
vendredi 9 décembre 2005 à 02:04:32 | Re : comparaison des chaînes de caractères

amelA

c'est à dire quand j'affiche mot1 et mot2 (pour vérifier) et bien c'est la même chaîne de caractère qui s'affiche or il considère que se sont deux chaînes différentes.
quant au trim() et bien je sais pas comment l'integrer dans mon programme ( je sais pas l'utiliser), ça serait sympa si tu me donnais un petit exemple sur l'utilisation du
trim().
au fait j'ai essayer la méthode compareTo mais ça n'a pas marché.
merci

vendredi 9 décembre 2005 à 08:47:48 | Re : comparaison des chaînes de caractères

DARKSIDIOUS

Membre Club Administrateur CodeS-SourceS
Attention, le equals compare les pointeurs sur les chaînes de caractères il me semble, du coup, si tu fait :
String mot1 = New String("coucou");
String mot2 = New String("coucou");

equals te renverra false, par contre :
String mot1 = new String("coucou");
String mot2 = mot1;

Alors la, equals te renverra true car les deux pointeurs pointe sur le même objets.

Utilise compareTo pour comparer des chaînes :
if (mot1.compareTo(mot2) == 0)
    System.out.println("Egal !");

_____________________________________________________________________
DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) tout en français : www.ProgOtoP.com/popapi/
vendredi 9 décembre 2005 à 10:13:48 | Comparaison de chaînes de caractères

pitouik

Réponse acceptée !
Attention à ne pas confondre l'opérateur == et la méthode équals(). L'opérateur == compare les références des objets. Par contre la méthode equals() de l'objet String compare bien une chaîne de caractères à une autre.

Javadoc pour String :

public boolean equals(Object anObject)
Compares this string to the specified object. The result is true if and only if the argument is not null and is a String object that represents the same sequence of characters as this object.

Petit exemple :
   public static void main(String[] args)
   {
      String str1 = new String("hello");
      String str2 = new String("hello");
     
      System.out.println(str1==str2);        // Résultat : false
      System.out.println(str1.equals(str2)); // Résultat : true
   }

Si tes chaînes semblent identiques à l'affichage mais que la méthode retourne false, c'est qu'il y a peut-être des caractères d'espacement qui trainent en fin ou en début de chaîne. Tu as plusieurs manières de vérifier :

En ajoutant un caractère supplémentaire en début et en fin de chaîne afin de mieux repérer les caractères en trop :
System.out.println("#" + str1 + "#");
System.out.println("#" + str2 + "#");

En affichant la longeur des chaines :
System.out.println(str1 + " " + str1.length());
System.out.println(str2 + " " + str2.length());

Ensuite si la présence de caractères d'espacement est bien le souci, tu utilises la méthode trim() :
str1 = str1.trim();
str2 = str2.trim();


Tu peux aussi comparer et faire le trim() en même temps (mais ce n'est pas très joli) :
str1.trim().equals(str2.trim());

Et si ça ne fonctionne pas, tu peux toujours essayer d'afficher le code ASCII de chacun des caractères de tes chaînes pour voir où ça coince. Mais normalement ça derait fonctionner...
vendredi 9 décembre 2005 à 10:17:20 | Re : comparaison des chaînes de caractères

jcodeunpeu

voilà tout est dit je crois ... A+
vendredi 9 décembre 2005 à 11:20:18 | Re : comparaison des chaînes de caractères

amelA

cool ça marche!! effectivement il y avait des espaces en plus, trim() a reglé le problème.
MERCI



Cette discussion est classée dans : string, mot, comparaison, caractères, chaînes


Répondre à ce message

Sujets en rapport avec ce message

Ajout de methodes a la classe String [ par moimadmax ] Je travaille sur un programme qui lit un fichier et qui doit trouver des mot clef dans ce fichier et faire une action en fonction de ce mot clefje dec gestion des chaînes de caractères [ par heraclesss ] Salut ! Je suis en train d'écrire une servlet, qui effectue des opérations sur des fichiers textes. chaque ligne est découpée en StringTokenizer. Mais Chaine de caractères String [ par oncle jules ] Salut à tous    J'aimerais savoir comment faire pour tester le premier caractère d'une chaine de caractere String.  J'ai un chiffre sous la forme couleur de chaine de caractères [ par othland ] slt tlmcomment affecter une couleur à un mot au milieu d'un texte affiché dans un JTextArea????sachant que mon mot est récupéré dans un Stringou bien Comparaison de chaine (string) [ par nicosdieu ] Bonjour, je cherche à comparer 2 variables de type stringJe ne cherche pas a savoir si elle sont égales, mais laquelle est avant l'autre dans un tri c Probleme dans un code [ par Bosveltinho ] J'ai fait une classe qui convertit un fichier texte en String. La classe qui suit a pour but de traduire mot à mot du langage assembleur en langage bi JAVA: Encodage des caractères [ par mop666 ] Bonjour,J'utilise JAVA 5 avec jrockit (BEA). A un moment dans le code j'effectue l'opération suivante:public class Temp{    private static final Strin Vérifier si mot est présent dans un string [ par lafolle24320 ] Bonjour, je suis à la recherche d'une méthode qui me permetrai de vérifier ci un mot est présent dans un String. merci Recuperation caractères d'un string [ par pypguizmo ] Bonjour, je cherche à créer, à partir d'un String donné un tableau (ou Array) contenant tous dans chacune de ses cases les caractères de ce String. J' beans et gestionnaire [ par Nollla ] salutbon j 'ai un probleme de compilation j 'ai fais le beans suivant dans un packatage public class Administrateur{final int id_ad;private String log


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,293 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales