我想计算java中String Array中重复多个字符串的字符串。一种方法是找到像那样的字符串
String[] Array=new String[10];
String find;
System.out.print("Enter Strings for Array: ");
for(int i=0;i<Array.length;i++ ) {
Array[i]=input.next();
}
System.out.print("Enter String to find");
find=input.next();
for(int i=0;i<Array.length;i++) {
if(find.equals(Array[i]) {
System.out.print("Found!");
else
System.out.print("Not Found!");
}
}
但是我想通过一个循环搜索重复的字符串并找到重复的字符串本身而不需要用户输入来查找。
答案 0 :(得分:0)
第一个问题,您的代码将无法编译。您为if
语句打开了一个块,但在else
语句之前不要关闭它。
根据您的帖子,您似乎想要数组中的单词计数。但是,您的代码建议您尝试查找数组中是否存在字符串。我猜它是前者,然后继续。
可以使用Map
在O(n)中完成,而不是O(n * n)方法。
String[] arr = {"ab","c","d","e","ab"};
Map<String, Integer> map = new HashMap<String, Integer>();
for(String word: arr) {
// if word is not in the map
if(!map.containsKey(word))
map.put(word, 0);
map.put(word, map.get(word) + 1);
}
for(String word: map.keySet())
System.out.println(word + " occurs " + map.get(word) + " times");