gpt4 book ai didi

java - 迭代数组 char[26] 时减去 char 'a'

转载 作者:行者123 更新时间:2023-12-01 19:53:48 25 4
gpt4 key购买 nike

在接下来的迭代中

    char[] chars = new char[26];
for (int i = 0; i < string.length(); i++)
{
chars[string.charAt(i) - 'a']++;
}

字符串中的位置必须是 chars[String.charAt(i) - 'a'] 而不是 chars[String.charAt(i)] 或 a将抛出 ArrayIndexOutOfBoundsException。为什么会这样?

最佳答案

因为如果您尝试使用 char 作为索引值,它将采用该字符的 ascii 值,因为它需要一个整数。您定义的数组大小为 26。因此任何 ascii 值大于 25 的字符都将导致 ArrayIndexOutOFBoundsException。

当你执行 string.charAt(i) - 'a' 时,基本上你是从 string.charAt(i) 的 ascii 值中减去 'a' 的 ascii 值。这有助于访问索引 0 到 25 中的字符 a 到 z。

您还应该确保字符串中的所有字符都是小写,否则您将再次遇到同样的问题。

关于java - 迭代数组 char[26] 时减去 char 'a',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50341110/

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