++array[s.charAt(i) - 'A'] 到底是做什么的?

2023-04-06Java开发问题
2

本文介绍了++array[s.charAt(i) - 'A'] 到底是做什么的?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

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 处的字符介于 AZ 之间或为 AZ 它将继续执行 ++array[s.charAt(i) - 'A']; 从我看到的情况来看,它会添加一次数组每个循环,或者每次循环添加一次数组的值,对于 char i 处的字符串,所以第一个是 0 秒是 2,因为数组从 0 开始.所以在 i 的位置添加一个数组 -'A' 是我感到困惑的地方.

I understand the For loop. the s.length() is 26, int[26] to be exact. so this loop will occur 26 times, 0-25. If the Char at i, 0-25 is between or are A-Z it will then proceed to ++array[s.charAt(i) - 'A']; From what i see it adds array once per loop, or adds the value of array once per loop, for the String at char i so the first one would be 0 second would be 2, because arrays start at 0. so adding an array at location of i -'A' is where i get confused.

推荐答案

语句 ++array[s.charAt(i) - 'A']; 正在递增索引数组中的值通过 s.charAt(i) - 'A'.

The statement ++array[s.charAt(i) - 'A']; is incrementing the value in the array indexed by s.charAt(i) - 'A'.

这个循环的作用是计算 s 中每个字母出现的次数.

What this loop does is that it counts up the number of occurrences of each letter in s.

- 'A' 的原因是它移动"了 ascii/unicode 值,因此 A - Z 的值是 0 - 25.因此更适合作为数组索引.

The reason for - 'A', is that it "shifts" the ascii/unicode value so that A - Z have values 0 - 25. And are thus more suitable as an array index.

这篇关于++array[s.charAt(i) - 'A'] 到底是做什么的?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

The End

相关推荐

如何使用 JAVA 向 COM PORT 发送数据?
How to send data to COM PORT using JAVA?(如何使用 JAVA 向 COM PORT 发送数据?)...
2024-08-25 Java开发问题
21

如何使报表页面方向更改为“rtl"?
How to make a report page direction to change to quot;rtlquot;?(如何使报表页面方向更改为“rtl?)...
2024-08-25 Java开发问题
19

在 Eclipse 项目中使用西里尔文 .properties 文件
Use cyrillic .properties file in eclipse project(在 Eclipse 项目中使用西里尔文 .properties 文件)...
2024-08-25 Java开发问题
18

有没有办法在 Java 中检测 RTL 语言?
Is there any way to detect an RTL language in Java?(有没有办法在 Java 中检测 RTL 语言?)...
2024-08-25 Java开发问题
11

如何在 Java 中从 DB 加载资源包消息?
How to load resource bundle messages from DB in Java?(如何在 Java 中从 DB 加载资源包消息?)...
2024-08-25 Java开发问题
13

如何更改 Java 中的默认语言环境设置以使其保持一致?
How do I change the default locale settings in Java to make them consistent?(如何更改 Java 中的默认语言环境设置以使其保持一致?)...
2024-08-25 Java开发问题
13