String c="12345";
for(char k:c.toCharArray())
System.out.print(k+4);
该计划输出:5354555657
我真的不明白为什么这就是这些数字。我看到的唯一模式是它打印一个“5”然后从字符串中取“1”并加2来制作“3”。然后打印一个“5”然后从字符串中取“2”并加2以使“4”然后打印“5”,依此类推。
数组中的字符,当被提升为int
以添加4
时,会采用其基础Unicode值,其中ASCII values是子集。数字0-9分别由代码48-57表示。通过'1'
的人物'5'
是49-53,然后你加4并获得53-57。
添加之后,将总和投回到char
,以便print
可以将其解释为char
。
System.out.print( (char) (k+4));
输出:
56789
这是因为你要为一个字符添加一个int(它将你的字符转换为int,然后将它添加到4,然后将其打印出来)。
你需要这样做:
System.out.println(Character.getNumericValue(k) + 4);