用作数组索引的字符是否隐式转换为 byte/int?
Are characters used as index of an array implicitly converted to byte/int?
我检查了下面的代码,在我看来 char
值在作为数组的索引插入时(在本例中为 int
数组)被转换为 ascii 格式。
例如char
'a' 会变成97(十进制格式)。
我想知道:这是到 int/byte 类型的隐式转换吗?
public int getNoOfUniqueCharacters(String str) {
int[] charSet = new int[128];
char[] characters = str.toCharArray();
int numOfUniqueChars = 0;
for (char curChar : characters) {
if(charSet[curChar] == 0) {
++numOfUniqueChars;
}
++charSet[curChar]; // Is char being implicitly converted to int/byte here?
}
return numOfUniqueChars;
}
提前感谢您抽出时间查看我的查询。
char
是整型。每个 char
都有一个介于 0
和 2^16-1
之间的数值。
因此,当您使用 char
作为数组的索引时,会使用该数值,因为数组总是有一个 int
索引。
发生的转换称为 widening primitive converion。
我检查了下面的代码,在我看来 char
值在作为数组的索引插入时(在本例中为 int
数组)被转换为 ascii 格式。
例如char
'a' 会变成97(十进制格式)。
我想知道:这是到 int/byte 类型的隐式转换吗?
public int getNoOfUniqueCharacters(String str) {
int[] charSet = new int[128];
char[] characters = str.toCharArray();
int numOfUniqueChars = 0;
for (char curChar : characters) {
if(charSet[curChar] == 0) {
++numOfUniqueChars;
}
++charSet[curChar]; // Is char being implicitly converted to int/byte here?
}
return numOfUniqueChars;
}
提前感谢您抽出时间查看我的查询。
char
是整型。每个 char
都有一个介于 0
和 2^16-1
之间的数值。
因此,当您使用 char
作为数组的索引时,会使用该数值,因为数组总是有一个 int
索引。
发生的转换称为 widening primitive converion。