假设我从命令行输入一个字符串,并且我想使用哈希表查找该字符串中的重复和唯一条目。
例如:
我/p:
嗨你好再见嗨好你好名字嗨一天嗨
o/p:
独特的元素是:再见,好,名字,日子
重复元素是:
嗨3次
你好2次
最佳答案
您可以通过对输入字符串调用 split("")
来拆分输入。这将返回一个代表每个单词的 String[]。迭代此数组,并使用每个字符串作为哈希表的键,值为整数。每次遇到单词时,请增加其值,或者如果当前没有值,则将该值设置为 0。
Hashtable<String, Integer> hashtable = new Hashtable<String, Integer>();
String[] splitInput = input.split(" ");
for(String inputToken : splitInput) {
Integer val = hashtable.get(inputToken);
if(val == null) {
val = new Integer(0);
}
++val;
hashtable.put(inputToken, val);
}
此外,您可能需要查看 HashMap
而不是 Hashtable
。 HashMap
不是线程安全的,但速度更快。 Hashtable
有点慢,但线程安全。如果您尝试在单个线程中执行此操作,我建议使用 HashMap
。
关于java - 如何使用哈希表查找重复和唯一的字符串条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6105787/