代码之家  ›  专栏  ›  技术社区  ›  Shashi

Java |整数到字符操作ASCII[重复]

  •  2
  • Shashi  · 技术社区  · 6 年前

    我有下面的简单Java程序,我正在努力理解。有人能帮忙吗?

    class Solution {
      public static void main (String args[])
      {
        String code ="1123";
        System.out.println( (code.charAt(0) - '1' + 'a' ));
      }
    }
    

    产量:97

    2 回复  |  直到 6 年前
        1
  •  4
  •   artemis Roberto    6 年前


    String code ="1123";
    System.out.println( (code.charAt(0) - '1' + 'a' ));
    

    在这种情况下 code.charAt(0)

    所以,正在发生的数学是在ASCII级别上的,就像你指出的那样。 1的ASCII值为49,a的ASCII值为97。

    49 - 49 + 97 我们知道,等于97,这就是这个函数的输出。

    1. 使用.charAt()函数将字符串“code”转换为字符数组,并引用数组的第0个元素,即1
    2. ASCII值1是从1中减去的
    3. 然后打印a的ASCII值,即97

    希望这有帮助!

    编辑:以下是ASCII查找表的一个很好的参考: http://www.asciitable.com/

        2
  •  1
  •   Ganesh Chowdhary Sadanala    6 年前

    因为java字符的算术运算会导致整数的形成。

               char a='1',b='3';
               char x=a+b;//compilation error
    

    所以对java字符的算术运算发生在ascii级别

                char x=(char)(a+b);//executed
    

    你可能会发现更好的解释 here