243

文字列内の文字から数値を解析するためのより良い解決策があるかどうかを知りたいだけです (インデックス n の文字が数値であることがわかっていると仮定して)。

String element = "el5";
String s;
s = ""+element.charAt(2);
int x = Integer.parseInt(s);

//result: x = 5

(あくまで一例と言っても過言ではありません)

4

9 に答える 9

467
于 2011-02-11T11:13:14.077 に答える
67

次のことを試してください。

str1="2345";
int x=str1.charAt(2)-'0';
//here x=4;

文字 '0' を減算する場合、ASCII 値を知る必要はありません。

于 2014-01-29T20:28:04.180 に答える
39

パフォーマンスの観点からはおそらくこれが最適ですが、大雑把です。

String element = "el5";
String s;
int x = element.charAt(2)-'0';

文字が数字であると想定し、Java のように常に Unicode を使用する言語でのみ機能します...

于 2011-02-11T11:17:32.017 に答える
16

単純に char '0' (ゼロ) を減算することで、char (数字 '0' から '9') を int (0 から 9) に変換できます。たとえば、'5'-'0' は int 5 になります。

String str = "123";

int a=str.charAt(1)-'0';
于 2015-08-24T21:29:10.703 に答える
6
String a = "jklmn489pjro635ops";

int sum = 0;

String num = "";

boolean notFirst = false;

for (char c : a.toCharArray()) {

    if (Character.isDigit(c)) {
        sum = sum + Character.getNumericValue(c);
        System.out.print((notFirst? " + " : "") + c);
        notFirst = true;
    }
}

System.out.println(" = " + sum);
于 2015-04-21T20:25:04.157 に答える