2012-07-27 65 views
-8

可能重複:
Can I multiply charAt in Java?我可以在Java中使用charAt產品嗎?

當我編譯如下:

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

我收到100

JAVA documenation:

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

我認爲我必須將字符串編譯爲int,但我認爲這是不一般的工作。任何解決方案或想法?

+5

你保持張貼同樣的問題,每隔20幾分鐘嗎? – 2012-07-27 11:38:58

+1

爲什麼你問同樣的問題兩次.. http://stackoverflow.com/questions/11686648/can-i-multiply-charat-in-java – 2012-07-27 11:40:21

+0

你必須迴避103而不是100.它讓我困惑。 – 2012-07-27 11:43:06

回答

0

試試這個,

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

謝謝,這對我很有幫助。我做了我想要的。 :d – United121 2012-07-27 15:16:53

3

你需要分析它爲int

Integer.parseInt(String.valueOf(s.charAt(0))) + Integer.parseInt(String.valueOf(s.charAt(1))) 
+0

這不是太重了嗎? String - > char - > String - > int – 2012-07-27 11:51:17

+0

因爲您不確定它是否只包含整數,所以需要注意適當的異常 – 2012-07-27 11:56:38

+0

@Michael Borgwadt的解決方案(正確)使用了提供的解析字符到數字方法'Character'。 – 2012-07-27 15:45:26

1

其添加字符的ASCII值。

您可以通過minusing 48

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

獲得INT相當於或進行功能轉換ASCII數點

1

假設您想要結果爲2 + 5 = 7:

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

這是必要的,因爲charAt()返回一個字符,它基本上是一個Unicode ID號碼。

相關問題