0

charAt を乗算しようとすると、「大きな」数値を受け取りました。

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

結果 : 103

でも、1つの番号だけを受け取りたいときはOKです。

JAVA ドキュメント:

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

したがって、説明または解決策が必要です( string を int に変換する必要があると思いますが、それは不要な作業のようです)

4

2 に答える 2

12

char体型です。s.charAt(0)この例の の値はchar、数値 50 ( の文字コード'2') のバージョンです。s.charAt(1)です(char)53。それらで使用+すると、それらは int に変換され、最終的には 103 (100 ではありません) になります。

数字 2とを使用しようとしている場合は5、はい、それらを解析する必要があります。または、それらが標準の ASCII スタイルの数字 (文字コード 48 から 57 まで) であることがわかっている場合は、それらから 48 を引くことができます (48 は の文字コードであるため'0')。またはさらに良いことに、Peter Lawrey が別の場所で指摘しているようにCharacter.getNumericValue、より広い範囲の文字を処理する を使用します。

于 2012-07-27T11:18:33.947 に答える
0

はい - 抽出された数字を解析するか、ASCII チャート機能を使用して 48 を減算する必要があります。

public final class Test {
    public static void main(String[] a) {
        String s = "25999993654";
        System.out.println(intAt(s, 0) + intAt(s, 1));
    }

    public static int intAt(String s, int index) {
        return Integer.parseInt(""+s.charAt(index));
        //or
        //return (int) s.charAt(index) - 48;
    }
}
于 2012-07-27T11:21:43.463 に答える