gpt4 book ai didi

java -++array[s.charAt(i) - 'A'] 究竟是做什么的?

转载 作者:行者123 更新时间:2023-12-01 06:43:10 25 4
gpt4 key购买 nike

for (int i = 0; i < s.length(); ++i) 
{
if (s.charAt(i) >= 'A' && s.charAt(i) <= 'Z')
{
++array[s.charAt(i) - 'A'];
}
}

我理解 For 循环。 s.length() 是 26,准确地说是 int[26]。所以这个循环会发生 26 次,0-25。如果 i, 0-25 处的字符介于 A-Z 之间或者是 A-Z,那么它将继续到 ++array[s.charAt(i) - 'A'];从我看到它每个循环添加一次数组,或者每个循环添加一次数组的值,对于字符 i 处的字符串,因此第一个将是 0 秒将是 2,因为数组从 0 开始。所以添加一个数组在 i -'A' 的位置是我感到困惑的地方。

最佳答案

array似乎是“每个大写字母的计数器”。通过减去字符 'A'从字符串中的任意字符中,您可以获得该字母在数组中的索引:

'A' - 'A' == 0
'B' - 'A' == 1
'C' - 'A' == 2

要理解这一点,您应该明白,Java 对待 char与(无符号)相同 short .因此,您可以使用 char 进行计算。

关于java -++array[s.charAt(i) - 'A'] 究竟是做什么的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8118802/

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