为什么从char中错误地减去?

时间:2014-10-30 23:27:06

标签: java math char int

所以这是我的代码:

public class charTest
{
  public static void main(String[] args)
  {
    String bigNum = ("789");
    char s1 = bigNum.charAt(0);
    System.out.println(s1);
    System.out.println(s1-1);
  }
}

它在第一行打印7,然后在下一行打印出54,为什么?我有一个非常长的数字,我有一个字符串,我在其中单独引用个别数字。我刚做了减法测试,看它是否正常工作。有什么见解吗?

2 个答案:

答案 0 :(得分:5)

7(字符)的unicode点值为55。减去1会产生54

第一个println语句使用char参数,而第二个使用int(从int减去char个{{3}转到int

获得6你可以做到的

System.out.println(Character.getNumericValue(s1) - 1);

答案 1 :(得分:0)

s1是一个char并打印出来。 s1 - 1被隐式地转换为int作为int打印。即,正在调用toString方法的值为54。