-8

可能重复:
我可以在 Java 中乘以 charAt 吗?

当我编译这个:

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

我收到了 100

JAVA文档:

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

我认为我必须将 string 编译为 int ,但我认为这是不必要的工作。任何解决方案或想法?

4

5 回答 5

3

您需要将其解析为 int

Integer.parseInt(String.valueOf(s.charAt(0))) + Integer.parseInt(String.valueOf(s.charAt(1)))
于 2012-07-27T11:38:13.350 回答
1

它添加了字符的ascii值。

你可以通过减去 48 来获得 int 等价物。

System.out.println((s.charAt(0)-48)+(s.charAt(1)-48)); 

或制作一个将ascii转换为数字的函数

于 2012-07-27T11:41:12.627 回答
1

假设您希望结果为 2 + 5 = 7:

System.out.println(Character.digit(s.charAt(0), 10) + Character.digit(s.charAt(1), 10));

这是必要的,因为charAt()返回一个字符,它基本上是一个 Unicode ID 号。

于 2012-07-27T11:43:28.777 回答
0

charAt() 的值不是整数而是 ascii 值

ASCII表

于 2012-07-27T11:42:47.277 回答
0

试试这个,

String s = "25999993654"; 
System.out.println(Character.getNumericValue(s.charAt(0)) 
         + Character.getNumericValue(s.charAt(1)));
于 2012-07-27T11:43:55.743 回答