【问题标题】:Are characters used as index of an array implicitly converted to byte/int?用作数组索引的字符是否隐式转换为字节/整数?
【发布时间】:2015-12-17 09:06:38
【问题描述】:

我检查了下面的代码,在我看来 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;
    }

提前感谢您花时间查看我的查询。

【问题讨论】:

    标签: java implicit-conversion


    【解决方案1】:

    char 是一个整数类型。每个char 都有一个介于02^16-1 之间的数值。

    因此,当您使用 char 作为数组的索引时,将使用该数值,因为数组始终具有 int 索引。

    发生的转换称为widening primitive converion

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-19
      • 1970-01-01
      • 1970-01-01
      • 2013-06-18
      相关资源
      最近更新 更多