为什么在每个字符之前将 int 转换为 Character 包装对象后缀 '\u000'?

以下是在两个字符串之间找到单个不同的附加字母表的解决方案。


 public char findTheDifference(String s, String t) {

        int sSum = 0;

        int tSum = 0;

        for(int i = 0; i < s.length(); i++){

            sSum = sSum + Character.getNumericValue(s.charAt(i)); 

        }

        for(int j = 0 ; j < t.length(); j++){

            tSum = tSum + Character.getNumericValue(t.charAt(j));

        }

        return (char)(tSum-sSum);    

    }

它返回 '\u000e' 而不是 'e'。


示例输入:


String1 = "abcd"

String2 = "abecd"

输出= "e"


问题: 1) 为什么它返回 '\u000e'?我知道如果我Character.getNumericValue在两者中都删除for loops,我会得到“e”。但我想了解为什么使用它会增加 \u000?


料青山看我应如是
浏览 145回答 1
1回答

杨__羊羊

问题是Character.getNumericValue()使用此处解释的特定规则将字符转换为数字。特别是,字母a,b,c,d,e您使用GET转换为数字10,11,12,13,14 -这种方法假定你打算他们在一些系统,如十六进制数字。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java