字符串中的字符减法

时间:2013-04-26 00:54:20

标签: java

以下是我试图弄清楚发生了什么的代码片段

String line = "Hello";
        for (int i = 0; i < line.length(); i++) {
        char character = line.charAt(i);
        int srcX = 0;
            if (character == '.') {
            }else{
                srcX = (character - '0') * 20;

                System.out.println("Character is " + (character - '0') +"     " + srcX);
            }
        }

并执行该代码将导致此

Character is 24     480
Character is 53     1060
Character is 60     1200
Character is 60     1200
Character is 63     1260

字符减去字符串是否为“0”会导致整数?系统的答案在哪里有24,53,60,60,63?

2 个答案:

答案 0 :(得分:2)

您可以减去字符,因为char是整数类型。

字符的值是其代码点的值(或多或少,由于Unicode和UTF-16以及所有这些,细节很棘手。)

当你从另一个字符中减去字符'0'时,你基本上减去48,即字符DIGIT ZERO的代码点。

因此,例如,类似'5' - '0'的东西将评估为53 - 48 = 5.当将包含数字的字符串“转换”为数值时,通常会看到此模式。从像'H'(其代码点为72)这样的字符中减去'0'并不常见,但它可能并且Java不关心。它只是处理整数等字符。

答案 1 :(得分:0)

http://www.ascii.cl/

'0'在ascii中是48 'H'是72。

因此72-48给你24

相关问题