我有一个ArrayList
,用户可以通过输入" 1"来填充字符串。然后在程序运行时输入String:
ArrayList<String> inStrings = new ArrayList<String>();
//(I left out the main while)
if (programCTRL == 1) {
System.out.println("Enter your keyword!");
inStrings.add(scan.nextLine());
System.out.println(inStrings);
}
当用户按下2时,他们应该接收某个单词重复的次数。重复的字符串不必彼此相邻。例如。如果用户输入&#34;熊&#34;三次,&#34;猫头鹰&#34;两次和#34; Cat&#34;一次,输出应该是:
Bear - 3.
Owl - 2.
Cat - 1.
我该怎么做?
答案 0 :(得分:1)
使用相同的ArrayList
而没有任何其他支持结构,您可以对元素进行排序:
Collections.sort(inStrings, new Comparator<String>() {
@Override
public int compare(String s1, String s2) {
return s1.compareToIgnoreCase(s2); // if you don't care about uppercase and lowercase;
}
});
然后在foreach循环中,您可以计算每个元素出现的次数:
String lastElement = null;
int counter = 0;
for(String s : inStrings){
if(lastElement == null){
lastElement = s;
counter = 1;
continue;
}
if(!s.equals(lastElement)){
System.out.println(lastElement + ": " + counter);
lastElement = s;
counter = 1;
}
else
counter++;
}
if(lastElement != null)
System.out.println(lastElement + ": " + counter);