我正在处理的程序有一个小问题,我需要能够查看 Java 中的数组并找到该数组中不同重复项的数量,例如,如果数组的值为 4、6, 4 我需要能够显示:
有: 2 个长度为 1 的字(4 个字符) 1 个长度为 2 的单词(6 个字符)
我目前拥有的是 -
public class wordLength {
public static void main(String[] args) {
String userInput1 = "Owen Bishop Java ";
String [] inputArray = userInput1.split(" ");
for (int i = 0; i < inputArray.length; i++) {
int length = inputArray[i].length();
int inputArray2 = length;
System.out.println(inputArray2);
}
}
}
目前,只要有空格,就会将字符串分割成一个数组,然后查找并打印数组中每个单词的长度,我需要显示相同长度的单词数量。
我对 Java 非常陌生,并且意识到这可能是一个非常简单的问题,但我们将非常感谢任何帮助,谢谢。
最佳答案
在不编写整个内容(或使用第 3 方库 - 我注意到您是 Java 新手,所以我们不要让事情复杂化)的情况下,我会考虑以下内容。
利用Map<Integer,Integer>
它将存储特定长度的单词数。例如填充:
Map<Integer, Integer> counts = new HashMap<Integer, Integer>();
for (String word : words) {
Integer current = counts.get(word.length());
if (current == null) {
current = 0;
}
current++;
counts.put(word.length(), current);
}
然后迭代它以输出每个字数的字数。请注意,上面使用了 boxing .
使用 Map
的优势是这样的(与你的数组不同)你不需要担心空计数(例如,如果你没有长度为 5 的单词,你将不会有一个条目)。根据您的用例,这可能/可能不是问题。
关于java - 如何使用Java查找数组中不同重复值的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21683747/