Java字符串到字符数组

Java字符串到字符数组,java,arrays,loops,for-loop,char,Java,Arrays,Loops,For Loop,Char,该程序输出: 5354555657 我真的不明白为什么要公布这些数字。我看到的唯一模式是,它打印一个“5”,然后从字符串中取“1”,再加上2,形成“3”。然后打印一个“5”,然后从字符串中提取“2”,再加上2使之成为“4”,然后打印一个“5”,依此类推。这是因为您正在向字符添加一个int(它将字符强制转换为int,然后将其添加到4,然后打印出来) 您需要执行以下操作: String c="12345"; for(char k:c.toCharArray()) System.out.print(k

该程序输出: 5354555657


我真的不明白为什么要公布这些数字。我看到的唯一模式是,它打印一个“5”,然后从字符串中取“1”,再加上2,形成“3”。然后打印一个“5”,然后从字符串中提取“2”,再加上2使之成为“4”,然后打印一个“5”,依此类推。

这是因为您正在向字符添加一个int(它将字符强制转换为int,然后将其添加到4,然后打印出来)

您需要执行以下操作:

String c="12345";
for(char k:c.toCharArray())
System.out.print(k+4);

当为添加
4
而提升为
int
时,数组中的字符采用其基础Unicode值,其中的是一个子集。数字0-9分别由代码48-57表示。字符
'1'
'5'
是49-53,然后添加4得到53-57

添加后,将总和转换回
char
,以便
print
可以将其解释为
char

System.out.println(Character.getNumericValue(k) + 4);
输出:

System.out.print( (char) (k+4));

它打印53 | 54 | 55 | 56 | 57。只需将4添加到相应字符的ascii值。(例如:“1”的ASCII值为49=>Add 4=>53)每个
char
都可以被视为数值,表示其在Unicode表中的索引。同样在Java中,
char+int=int
这意味着当我们以
'1'+4
结束时,它被评估为
49
(),并由
4
递增,这就是
53
。真是太棒了!这是我的孩子们在计算机科学的书面部分遇到的一个UIL问题。不过,k的ASCII是107,所以我不认为我在跟踪你。@TroyWalker
k
作为有值字符是有价值的,比如
'1'
'2'
,您需要查看它们的索引。@TroyWalker-这是数字字符的ascii值,而不是k。例如,ascii中的1是47,2是48,等等(它将字符转换为int)。把这些加在k的值上会得到上面的输出。谢谢,这很有意义。我感谢你的答复。
56789