4
我想知道是否有一個簡單的方法來計算出現在小段落(#1)和小段落(#2)中的單詞數量。Java:查找在這兩個數據源中出現多少個單詞?
一般來說,我決定在這些段落中逐字段地重疊多少。因此,如果(#1)包含單詞「happy」,並且(#2)包含單詞「happy」,那麼它就像+1值。
我知道我可以對應用於(#2)的(#1)中的每個單詞使用String.contains()
。但我想知道是否有更有效率的東西可以使用
我想知道是否有一個簡單的方法來計算出現在小段落(#1)和小段落(#2)中的單詞數量。Java:查找在這兩個數據源中出現多少個單詞?
一般來說,我決定在這些段落中逐字段地重疊多少。因此,如果(#1)包含單詞「happy」,並且(#2)包含單詞「happy」,那麼它就像+1值。
我知道我可以對應用於(#2)的(#1)中的每個單詞使用String.contains()
。但我想知道是否有更有效率的東西可以使用
您可以創建兩個集合s1和s2,分別包含第一個和第二個段落中的所有單詞,並將它們相交:s1.retainAll(s2)
。聽起來很簡單。
更新
對我的作品
Set<String> s1 = new HashSet<String>(Arrays.asList("abc xyz 123".split("\\s")));
Set<String> s2 = new HashSet<String>(Arrays.asList("xyz 000 111".split("\\s")));
s1.retainAll(s2);
System.out.println(s1.size());
不要忘了從兩組刪除空字。
我只是輸入一個複雜的算法,但這是更清潔哈哈。瞭解Java API的+1比我更好。 – Mike 2010-06-22 20:39:21
聽起來不錯,會嘗試讓你知道它是否工作! – rockit 2010-06-22 20:44:22
我一直用這種方法得到0。我使用3個字的哈希集測試它與3個字的哈希集...每次結果爲零...,集是無序的,一個字是在兩個公用的 – rockit 2010-06-22 21:37:33