2017-03-19 33 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

将解决方案标记为可接受的解决方案。 –