【问题标题】:How to store zero in a char array instead of it storing null [JAVA]如何在 char 数组中存储零而不是存储 null [JAVA]
【发布时间】:2020-07-29 08:03:09
【问题描述】:

对可能写得不好的问题和缺乏知识表示歉意。

我试图将实际字符“0”存储在一个数组中,但它一直默认为空。有没有办法避免这种情况? 下面是我的代码的修改版本。我正在尝试比较两个二进制数,然后当数字不匹配时,以下数字变为全零。任何帮助将不胜感激

        String fullBinOne = "1010101010100101"
        String fullBinTwo = "1010101010101010"
        char[] charBinOne = fullBinOne.toCharArray();
        char[] charBinTwo = fullBinTwo.toCharArray();
        char[] routeSummaryArray = fullBinOne.toCharArray();

        int subnetCIDR = 0;

        for (int i = 0; i < charBinOne.length; i++){
            if (charBinOne[i] != charBinTwo[i]) {
                subnetCIDR = i;
                break;
            }
        }

        for (int i = subnetCIDR; i < charBinOne.length; i++){
            routeSummaryArray[i] = (char)0;
        }

routeSummaryArray 的输出是“101010101010” 而不是 1010101010100000

【问题讨论】:

  • 字符0'0'表示,而不是(char) 0
  • 如何输出routeSummaryArray
  • routeSummaryArray[i] = '0';

标签: java arrays char


【解决方案1】:
routeSummaryArray[i] = (char)0;

(char)0 将整数值(此处为 0)类型转换为字符。此处,整数值的ASCII值(此处为0)将存储到名为“routeSummaryArray”的字符数组的指定索引中。

ASCII 值 0 为 null。所以它输出为“101010101010”。

如果您需要输出为 1010101010100000,请使用

routeSummaryArray[i] = '0';

或者,

routeSummaryArray[i] = (char)48;

'0' 是 48" 的 ASCII 值。

供您参考,http://www.asciitable.com/

【讨论】:

  • 但更重要的是,字符 '0' 的 UNICODE 值为 48。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-28
相关资源
最近更新 更多