java - 我可以在Java中将charAt相乘吗?

标签 java string char

当我尝试乘以 charAt 时,我收到了“大”数字:

String s = "25999993654";
System.out.println(s.charAt(0)+s.charAt(1));

结果:1​​03

但是当我只想接收一个号码时就可以了。

关于JAVA文档:

the character at the specified index of this string. The first character is at index 0.

所以我需要解释或解决方案(我认为我应该将 string 转换为 int ,但在我看来这是不必要的工作)

最佳答案

charintegral type 。示例中 s.charAt(0) 的值是数字 50 的 char 版本('2' 的字符代码) 。 s.charAt(1)(char)53。当您对它们使用 + 时,它们会转换为整数,最终得到 103(而不是 100)。

如果您尝试使用数字 25,是的,您必须解析它们。或者,如果您知道它们是标准 ASCII 样式数字(字符代码 48 到 57,包括在内),则只需从中减去 48(因为 48 是 '0' 的字符代码)。或者更好的是,正如 Peter Lawrey 在其他地方指出的那样,使用 Character.getNumericValue ,它可以处理更广泛的字符。

关于java - 我可以在Java中将charAt相乘吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11686648/

相关文章:

C++ 简单字符检查

java - System.gc()什么时候做某事?

java - 将 List 转换为 Object<class> 时出现 ClassCastException?

javascript - 在javascript中抓取和显示xml格式的字符串

r - 从 R 中的字符串中提取和拆分数字和字符

C: switch with cases 确定输出信息的类型(存储在 char 中)

Javascript 对象,在 C 中制作类似

java - Java Spring Data 中的 MongoDB $graphlookup

java - 保存多个多对一关系时的 Hibernate 优化

arrays - 如果 PowerShell 中不包含任何数组值,则写出字符串