gpt4 book ai didi

java - 获取用户输入,放入数组中并打印出每个字母使用了多少次

转载 作者:行者123 更新时间:2023-12-02 07:59:32 25 4
gpt4 key购买 nike

我正在尝试编写这个程序,以便当用户输入一行文本时,他们会得到一个图表,显示每个字母的使用次数。我将其分解为一个数组,但我不断收到“counts[letters[a] == 'a']++;”的错误说我无法将字符串转换为字符或将 boolean 值转换为整数,具体取决于我的表达方式。我不明白为什么它不全是字符。

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' 返回一个 boolean 值

我猜您正在尝试在每次遇到字母时将“字典”值增加 1。您可以通过 letters[a] - 'a'

获取索引

因为ASCII table中的顺序,字母“a”等于 97,如果减去另一个字母(例如“b”,即 98),将产生索引 1,这是您的 base26“字典”的正确位置

额外:

  • 您应该使用 for (int i = ... 进行索引(i 而不是 a,如果您将 i 命名为 i,很容易混合变量) 这样的索引)
  • 你必须在开始执行此操作之前,请确保所有字符都是小写的,因为正如您在上表中看到的 'B' - 'a''b' - 'a'是两个截然不同的东西。

关于java - 获取用户输入,放入数组中并打印出每个字母使用了多少次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36876788/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com