2012-07-22 4 views
0

Je voudrais comparer les chaînes mais le code suivant ne fonctionnera pas. Je suppose que c'est parce qu'incompatible, y at-il un autre moyen de le faire? Merci!comparer les chaînes méthode

public class test 
{ 
    public static void main(String[] args) 
    { 
     String str1 = "abc def ghi abc ded abc ghi"; 
     String str2 = "ghi"; 
     int count = 0; 

     String array[] = str1.split("\t"); 
     for(int i = 0; i < array.length; i++) 
     { 
      if(array[i].equals(str2)) 
      { 
      count++; 
      System.out.println(array[i]); 
      System.out.println(count);  
      } 

     }//for 

     }//main 

    }//test 
+0

sauf si vous avez un onglet entre chaque mot, utilisez 'split (" ")', comme vous voulez diviser le 'String' à ses espaces blancs et non aux espaces à onglets –

Répondre

4

On dirait que vous partagez sur "\t" (onglet), mais votre chaîne est " " (espace) séparés. Essayez la chaîne array[] = str1.split(" "); à la place.

+0

merci, je ne savais pas que c'était si important! JE VOUS REMERCIE! –

1

NE PAS utiliser"\t" mais utiliser à la place " ", et il fonctionne .....

"\t" ne sera utile que si vous avez "tab"utilisé à la place de l'espace.

Essayez cette ..

public class T 
{ 
    public static void main(String[] args) 
    { 
     String str1 = "abc def ghi abc ded abc ghi"; 
     String str2 = "ghi"; 
     int count = 0; 

     String array[] = str1.split(" "); 
     for(int i = 0; i < array.length; i++) 
     { 
      if(array[i].equals(str2)) 
      { 
      count++; 
      System.out.println(array[i]); 
      System.out.println(count);  
      } 

     }//for 

    }//main 

    }//test 
+0

ouais, ça marche, merci kumar! –

+0

Vous êtes les bienvenus ... –

1

chaîne a contient méthode, il aide à savoir l'occurence d'un élément. dans votre cas str1.contains (str2)

1

Si vous ne souhaitez pas utiliser Split, vous pouvez également utiliser la classe StringTokenizer. http://docs.oracle.com/javase/1.4.2/docs/api/java/util/StringTokenizer.html Je trouve cela très utile. Vous pouvez créer un StringTokenizer pour chaque chaîne comme celle-ci.

StringTokenizer st1 = new StringTokenizer(str1," ");

Le "" après la str1 indique que les choses à parse par. Donc, si vous vouliez analyser par une virgule, un tiret, un chiffre, une lettre, n'importe quoi, mettez-le là!

Ensuite, créez un tableau en fonction du nombre de jetons qu'il trouve comme ceci:

String[] array1 = new String[st1.countTokens()]; 

Remplissez le tableau comme celui-ci:

for(int i=0;i<st1.countTokens();i++) 
{ 
    array1[i]=st1.nextToken(); 
} 

Vous pouvez de la même faire avec str2 et comparer façon! C'est juste une façon différente de le faire comme vous l'avez demandé. Sinon, changer le "/ t" en "" fonctionnera avec la division comme indiqué dans les autres réponses.

Espérons que cela aide!

+0

une chose très besoin, merci gagan! –