【发布时间】:2016-01-23 13:41:45
【问题描述】:
我知道这个主题之前已经介绍过,但我没有找到我需要的内容。我正在尝试计算字母表中每个字母的出现次数;来自用户输入的字符串。输出将包括所有 26 个字母,即使它们没有出现。因此,0 将分配给未出现的字母。我通过循环遍历一组字母并将其与用户输入进行比较来做到这一点。
我在添加字母和显示每个字母时遇到问题。我的输出结果显示输入的每个字母 + 1。
public class TwoArrays {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
char[] lower = new char[] {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
char[] upper = new char[] {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
System.out.println("Please enter a sentence to parse.");
String userString = input.nextLine();
for(int i = 0; i < userString.length(); i++) {
//lowercase
for(int l = 0; l < lower.length; l++) {
int counter = 0;
if(lower[l] == userString.charAt(i)) {
counter++;
System.out.println(lower[l] + ":" + counter);
}
}
//uppercase
for(int u = 0; u < upper.length; u++) {
int counter = 0;
if(upper[u] == userString.charAt(i)) {
counter++;
System.out.println(upper[u] + ":" + counter);
}
}
}
}
}
输出
Please enter a sentence to parse.
hello WORLD
h:1
e:1
l:1
l:1
o:1
W:1
O:1
R:1
L:1
D:1
【问题讨论】:
-
需要区分
o和O吗? -
我是 Java 和一般编程新手,所以我不熟悉哈希图和高级 API。我会阅读它们并尝试理解所有答案的含义。谢谢大家!
标签: java arrays string loops char