Java字符串到字符数组
该程序输出: 5354555657Java字符串到字符数组,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
我真的不明白为什么要公布这些数字。我看到的唯一模式是,它打印一个“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,所以我不认为我在跟踪你。@TroyWalkerk
作为有值字符是有价值的,比如'1'
,'2'
,您需要查看它们的索引。@TroyWalker-这是数字字符的ascii值,而不是k。例如,ascii中的1是47,2是48,等等(它将字符转换为int)。把这些加在k的值上会得到上面的输出。谢谢,这很有意义。我感谢你的答复。
56789