Java |整数到字符操作ASCII
下面是我正在努力理解的简单Java程序。有人能帮忙吗Java |整数到字符操作ASCII,java,Java,下面是我正在努力理解的简单Java程序。有人能帮忙吗 class Solution { public static void main (String args[]) { String code ="1123"; System.out.println( (code.charAt(0) - '1' + 'a' )); } } 产出:97 我知道它返回的是字符“a”的ASCII值,但是-“1”+“a”部分令人困惑,它到底在做什么?让我们这样看 String code =
class Solution {
public static void main (String args[])
{
String code ="1123";
System.out.println( (code.charAt(0) - '1' + 'a' ));
}
}
产出:97
我知道它返回的是字符“a”的ASCII值,但是-“1”+“a”部分令人困惑,它到底在做什么?让我们这样看
String code ="1123";
System.out.println( (code.charAt(0) - '1' + 'a' ));
在本例中,code.charAt(0)
调用实质上是将代码字符串转换为数组,并获取第0个元素,即1
因此,正在发生的数学是ASCII级别的,正如您所指出的。
1的ASCII值为49,a的ASCII值为97
所以数学上说:49-49+97
我们知道,等于97,这就是这个函数的输出
重述:
编辑:这里有一个很好的ASCII查找表参考:,因为对java字符的算术计算会导致整数的形成
char a='1',b='3';
char x=a+b;//compilation error
因此,java字符上的算术运算发生在ascii级别
因此,您必须将其强制转换为char并分配给x
char x=(char)(a+b);//executed
你可以在Hi上找到更好的解释。System.out.println对int、long和String有重载。当您调用
code.charAt(0)
时,结果是“char”类型,但除了转换为int之外,没有对char进行算术计算,因此计算结果是整数,java选择System.out.println(int)。在打印之前,你必须先将其转换为char。谢谢Jerry。“这是一个很好的解释。我很乐意帮忙,”沙石说。