java - 如何将字符数组与布尔值进行比较
问题描述
我不太确定为什么这段涉及字符数组的代码有意义?
String str1 = "Hello"
int[] charSet = new int[128];
char[] chars = str1.toCharArray();
for (char c : chars) { // count number of each char in s.
if (charSet[c] == 0)++charSet[c];
}
我的问题是如何将 char 变量作为 charSet 数组的索引并将其与 0 进行比较?
解决方案
Achar
是无符号的 16 位数值类型,int
当用作数组索引时将被扩展。
charSet[c]
是隐含的charSet[(int) c]
请注意,如果字符串中包含非 ASCII 字符,则代码将失败,因为只有ASCII字符在 Unicode 代码点范围 0-127 中。任何其他 Unicode 字符都会导致ArrayIndexOutOfBoundsException
.
推荐阅读
- dialogflow-es - Dialogflow - 我将如何从 Fulfillment 中获取上下文以进行首次通话?
- python - 如何确定一列的元素是否在另一列中?
- java - 如何在不使用math.abs函数JAVA的情况下找到两个数字的差和该答案的绝对值
- avassetwriter - AVAssetWriter finishWritingWithCompletionHandler 状态为 0 时无法调用方法
- python-3.x - 无法导入包及其功能 - Python
- visual-studio - 如何阻止 Visual Studio 2017 使我的代码变灰
- performance - Solr 性能:6.6.0 与 7.2.1
- python - 加入合并多个数据框
- python - 使用类在python中创建图形数据结构
- javascript - 在 MVC 5 中使用相对 URL 的 AJAX 发布