当我尝试乘以 charAt 时,我收到了“大”数字:
String s = "25999993654";
System.out.println(s.charAt(0)+s.charAt(1));
结果:103
但是当我只想接收一个号码时就可以了。
关于JAVA文档:
the character at the specified index of this string. The first character is at index 0.
所以我需要解释或解决方案(我认为我应该将 string 转换为 int ,但在我看来这是不必要的工作)
最佳答案
char
是 integral type 。示例中 s.charAt(0)
的值是数字 50 的 char
版本('2'
的字符代码) 。 s.charAt(1)
是 (char)53
。当您对它们使用 +
时,它们会转换为整数,最终得到 103(而不是 100)。
如果您尝试使用数字 2
和5
,是的,您必须解析它们。或者,如果您知道它们是标准 ASCII 样式数字(字符代码 48 到 57,包括在内),则只需从中减去 48(因为 48 是 '0'
的字符代码)。或者更好的是,正如 Peter Lawrey 在其他地方指出的那样,使用 Character.getNumericValue
,它可以处理更广泛的字符。
关于java - 我可以在Java中将charAt相乘吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11686648/