我想創建一個方法,我們將 text(String) 作為輸入引數。該方法將回傳不重復的單詞數。例如:“貓、狗、貓、鳥、猴”回傳值:4
如何將每個 Collections 專案相互比較?我已經擁有的:
public class WordsCounter {
public static void main(String[] args) {
uniqueWordsCounter("cat, dog, Cat, Bird, monkey");
}
public static void uniqueWordsCounter(String text) {
String processedText = text.toLowerCase().replaceAll(",", "");
String[] words = processedText.split("\\s");
List<String> wordsList = Arrays.asList(words);
}
}
uj5u.com熱心網友回復:
一種方法是使用流 APIdistinct()中的操作:
import java.util.*;
public class WordsCounter {
public static void main(String[] args) {
uniqueWordsCounter("cat, dog, Cat, Bird, monkey");
}
public static void uniqueWordsCounter(String text) {
String[] words = text.toLowerCase().split(",\\s*");
List<String> wordsList = Arrays.asList(words);
System.out.println(wordsList);
System.out.println("Count of distinct elements: "
wordsList.stream().distinct().count());
}
}
示例運行:
$ java Demo.java
[cat, dog, cat, bird, monkey]
Count of distinct elements: 4
請注意在逗號分隔后跟可選空格而不是替換逗號然后拆分,以幫助簡化事情。
uj5u.com熱心網友回復:
在使用分隔符“,”分隔字串后,您可以使用集合來跟蹤字串中存在的所有唯一元素。 在您的示例中,您將 cat 和 Cat 保持相同(忽略大小寫)。因此,您可以使用此邏輯。
public class WordsCounter {
public static void main(String[] args) {
int count = uniqueWordsCounter("cat,dog,Cat,Bird,monkey");
System.out.println(count);
}
public static int uniqueWordsCounter(String text) {
String str[] = text.split(",");
Set<String> set = new HashSet<>() ;
for( String temp : str)
{
if ( !set.contains(temp.toLowerCase()))
{
set.add(temp);
}
}
return set.size();
}
}
輸出是
4
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/418866.html
標籤:
上一篇:在C中將字串轉換為字串陣列
