在制作关于计算每个字母数量的程序时(例如输入-abc / output- a:1,b:1,c:1,d:0,...,z:0)我遇到了问题。我不知道为什么if条款不起作用...... 这是我的代码。
import java.util.Scanner;
public class Prac05 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String a = sc.nextLine();
String[] b = a.split("");
if (a.length() <= 100) {
for (int i = 0; i < b.length; i++) {
for (int j = 'a'; j <= 'z'; j++) {
if(b[i].equals((char) j)) {
System.out.println("1");
}
}
}
}
}
}
我应该打印“1”,但是因为if-clauses不正确,所以没有输出......
答案 0 :(得分:2)
您正在将String
对象与Character
对象进行比较,这些对象因其类型不同而彼此不相等。
一个简单的解决方案,也可以使代码更高效,更优雅,使用String.charAt(),而不是将原始字符串拆分为许多小String
个对象,并从{{迭代对于字符串中的每个字符,1}}到0
。