Comparer deux string

Résolu/Fermé
djanahana Messages postés 82 Date d'inscription mercredi 20 mai 2009 Statut Membre Dernière intervention 6 avril 2015 - 3 janv. 2012 à 23:25
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 4 janv. 2012 à 01:47
Bonjour a tous
J'ai un pb dans mon code java qui lit une chaine de caractère puis il extrait les différente mot(séparer par des espace' `) mettre dans un tableau puis il supprime les éléments doublant (il permet qu'une seul occurrence pour un même élément )

Mon pb est que le tableau ne supprime pas les éléments double et je ne sait pas ou se trouve le pb
int k=1 ;
for(int i=0;o<chaine.length();o++){
	
		if (chaine.charAt(i)==' ')
			{
	
			String e= chaine.substring(0,i);
			 chaine=chaine.substring(i+1,chaine.length());
			 i=0;
                                          ta[k]=e;
                                          k++; 
                                                }   
                         	}
		c=chaine;
	             ta[k]=c;
                           k++;
for(int m=1;m<t.length && t[m]!=null;m++){
	
    for(int t=m+1;t<t.length && t[t]!=null ;t++){
     
        	if(t[t].equals(t[m])){
        	
    	for(int s=t;s<t.length ;s++) t[s]=t[s+1];
       	}
}
    
    }




A la fin un affichage des éléments de tableau mais il y a des éléments qui existe plusieurs fois

Il y a-t-il une solution ou même proposition a ce pb
Merci d'avance

2 réponses

tarek_dotzero Messages postés 817 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 12 avril 2022 122
3 janv. 2012 à 23:32
Salut,

Avant tout, en Java il y a une méthode de la classe String qui permet de la décomposer à base d'un séparateur, alors pour créer votre tableau t il vous suffit:
String[] t;
t = chaine.split(" ");


Pour la suppression des boucle, la comparaison est faite correctement, néanmoins, je vois des problèmes dans les indices des différentes boucles, en plus la condition t[m] != null est incorrecte parce que en faite quand vous copiez les champs vous ne mettes rien à null.

Peut être que vous devez ajouter une action dans le boucles la plus au centre pour remettre à null la dernière chaine de la table après avoir copier.

Si vous avez la possibilité, créer un nouveau tableau, ça sera plus efficace.

Bon Courage.
2
djanahana Messages postés 82 Date d'inscription mercredi 20 mai 2009 Statut Membre Dernière intervention 6 avril 2015 13
4 janv. 2012 à 01:23
merci beaucoup monsieur pour la fonction (split ) ca optimise plus de 5 ligne de mon code .

Franchement je vais lire a partir d'un fichier texte (donc j'ai plusieurs ligne dont je consider chaque ligne une chaîne indépendante puis effectuer le découpage en mot ) mais je ne sait pas est ce que je peux faire la même fonction split (moi je propose de recopier a chaque fois le tableau qui résulte de traitement de chaque ligne a un tableau T qui contient tous les mots possible )

j'ai essayer d'ajouter
ta[ta.length-1]=null 
pour signifier que la dernière case de tableau sera tjrs a une valeur mais le pb persist

pouvez vous me dire monsieur comment supprimer les mots qui apparaître plusieurs fois dans un tableau ,vraiment sa fait presque une semaine que je suis bloqué dans cette partie .




merci bcp monsieur
0
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 191
4 janv. 2012 à 01:47
Bonjour,
Ton 3èm for, il me semble qu'il manque les accolades.
A+
1