【发布时间】:2016-08-20 23:33:47
【问题描述】:
我正在尝试编写这个程序,以便当用户输入一行文本时,他们会得到一个图表,显示每个字母被使用了多少次。我把它分解成一个数组,但我一直收到“counts[letters[a] == 'a']++;”的错误说我不能将字符串转换为 char 或将布尔值转换为 int,这取决于我输入的方式。我不明白为什么它不是全字符。
import java.util.*;
public class AnalysisA { //open class
public static String input;
public static String stringA;
public static void main (String args []) { //open main
System.out.println("Please enter a line of text for analysis:");
Scanner sc = new Scanner(System.in);
input = sc.nextLine();
input = input.toLowerCase();
System.out.println("Analysis A:");//Analysis A
System.out.println(AnalysisA(stringA));
} // close main
public static String AnalysisA (String stringA) { // open analysis A
stringA = input;
char[] letters = stringA.toCharArray();
int[] counts = new int[26];
for (int a = 0; a < letters.length; a++) { //open for
counts[letters[a] == 'a']++;
System.out.print(counts);
} //close for
}
【问题讨论】:
-
使用
counts[letters[a] -'a']++;而不是counts[letters[a] == 'a']++;。原因:在 count[index] 中,索引是 int 类型。当您执行letters[a] == 'a'时,这将返回一个布尔值。