2017-03-19 31 views
0

字符串數組列表值和arraystring值我有兩個數組列表如下:如何比較在Java

ArrayList<String> hasil = new ArrayList<String>(); 
hasil.add("saya makan saya"); 
hasil.add("makan kamu dimana saya"); 
hasil.add("kamu dimana"); 

ArrayList<String> find = new ArrayList<>(); 
find.add("saya"); 
find.add("makan"); 

而且我有代碼的Java這樣的:

String[] kata = new String[10]; 
for (int k = 0; k < find.size(); k++) { 
    for (int i = 0; i < hasil.size(); i++) { 
     kata = hasil.get(i).split(" "); 
     for (int j = 0; j < kata.length; j++) { 
      if (kata[j].equals(find.get(k))) { 
       c++; 
      } 
     } 
     System.out.println(find.get(k) + " = " + c); 
     c = 0; 
    } 
} 

我想比較ArrayList的價值用arraytring kata查找。輸出,我有這樣的:

saya = 2 
saya = 1 
saya = 0 
makan = 1 
makan = 1 
makan = 0 

整體輸出是正確的。但我想獲得線的輸出。我想要一個這樣的輸出:

saya = 2; 
makan = 1; 
saya = 1; 
makan = 1; 
saya = 0; 
makan = 0; 

任何人都可以幫助我嗎?

回答

1

在這裏,你去。 :-)
試試這個

String[] kata = new String[10]; 
for (int i = 0; i < hasil.size(); i++) { 
    for (int k = 0; k < find.size(); k++) { 

     kata = hasil.get(i).split(" "); 
     for (int j = 0; j < kata.length; j++) { 
      if (kata[j].equals(find.get(k))) { 
       c++; 
      } 
     } 
     System.out.println(find.get(k) + " = " + c); 
     c = 0; 
    } 
} 
+0

感謝你非常有幫助:) –

1

只要改變兩條線的位置是

for (int i = 0; i < hasil.size(); i++) { 
     for (int k = 0; k < find.size(); k++) { 

完整代碼如下

public static void main(String[] args) { 
    System.out.println("Program Start"); 
    int c = 0; 
    ArrayList<String> hasil = new ArrayList<String>(); 
    hasil.add("saya makan saya"); 
    hasil.add("makan kamu dimana saya"); 
    hasil.add("kamu dimana"); 

    ArrayList<String> find = new ArrayList<>(); 
    find.add("saya"); 
    find.add("makan"); 

    String[] kata = new String[10]; 
    for (int i = 0; i < hasil.size(); i++) { 
     for (int k = 0; k < find.size(); k++) { 

      kata = hasil.get(i).split(" "); 
      for (int j = 0; j < kata.length; j++) { 
       if (kata[j].equals(find.get(k))) { 
        c++; 
       } 
      } 
      System.out.println(find.get(k) + " = " + c); 
      c = 0; 
     } 
    } 
} 
+0

這將幫助你:) –

+0

謝謝你非常有幫助:) –

+0

將解決方案標記爲可接受的解決方案。 –