2012-07-22 151 views
0

我想比較字符串,但下面的代碼將不起作用。我猜這是因爲不兼容,有沒有其他方法可以做到這一點?謝謝!比較字符串方法

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

除非在每個單詞之間有一個標籤,否則使用'split(「」)',因爲您想在其空白處拆分String而不是在標籤空間 – 2012-07-22 16:41:09

回答

4

它看起來像你"\t"(標籤)上分裂,但你的字符串是" "(空格)分隔。改爲嘗試字符串array[] = str1.split(" ");

+0

謝謝,不知道它太重要了!謝謝! – 2012-07-22 16:41:35

1

不要使用"\t"但使用" ",而是和它的作品 .....只有在你已經使用的,而不是空間"tab"

"\t"將是有益的。

現在就來試試這個..

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

yeap,它的工作原理,謝謝kumar! – 2012-07-22 16:44:38

+0

不客氣... – 2012-07-22 17:13:26

1

字符串已經包含方法幫助它找出一個項目的次數。 你的情況 str1.contains(str2)

1

如果你不想使用split,你也可以使用StringTokenizer類。 http://docs.oracle.com/javase/1.4.2/docs/api/java/util/StringTokenizer.html我覺得這個最有用。你可以像這樣爲每個字符串創建一個StringTokenizer。

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

的 「」 其中str1指示之後的事情由解析。所以如果你想用逗號,短劃線,數字,字母,任何東西來解析,就把它放在那裏!

然後創建基於令牌的數量它找到一個這樣的數組:

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

填充數組是這樣的:

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

你可以同樣用STR2做到這一點,並比較這辦法!按照你的要求,這只是一種不同的方式。否則,如其他答案中所述,將「/ t」更改爲「」將與分割一起使用。

希望這會有所幫助!

+0

非常需要的東西,謝謝gagan! – 2012-07-22 17:43:36