ln1989130 2011-05-04 21:38
浏览 172
已采纳

一个简单的问题,大虾闷来看看

String s=""+1254;
int k=s.charAt(0);
System.out.print(k);
为什么输出的是49??
如果改成
System.out.print(k-48);
输出的是1.
这是为什么?为什么要减48?是字符值和数字中的某一种对应关系?类似Ascii码的对应关系(a-97)?

  • 写回答

4条回答 默认 最新

  • q_wong 2011-05-05 10:47
    关注

    因为
    [quote]int k=s.charAt(0); [/quote]
    你在这里把它转换成整型了

    如果你直接输出s.charAt(0)的话就是1,也就是你之前定义的那个字符串s的第1个字符(字符串s中inex为0的字符)

    我觉得可能是你定义的字符串是一串数字误导了你
    你打印一下下面这段代码就很好理解了,原理都是一样的
    [code="java"]S
    tring s="abc";
    System.out.println(s.charAt(0));
    System.out.println((int)s.charAt(0));
    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog