1

私は数字の長い文字列を持っています、

String strNumbers = "123456789";

これから取得する必要がありますint[]

私はそれを得るためにこの方法を使用します:

public static int[] getIntArray(strNumbers)
{
    String[] strValues = strNumbers.split("");
    int[] iArr = new int[strValues.length];
    for(int i = 0; i < strValues.length; i++)
    {
        iArr[i] = Integer.parseInt(strValues[i]);
    }
    return iArr;
}

次のエラーが発生します: java.lang.NumberFormatException: For input string: ""

私の推測では、文字列をそのように分割することはできません。あらゆる種類のエスケープまたは正規表現を試しましたが、何も機能しません。

誰でも助けることができますか?

4

6 に答える 6

9

試す

char[] chars = strNumbers.toCharArray();

次に、char配列を反復処理します。

于 2013-04-10T14:02:45.240 に答える
6

あなたの問題は分割正規表現です。代わりにこれを試してください:

String[] strValues = strNumbers.split("(?<=\\d)");

これは、すべての桁の後に分割され (正規表現の後ろを使用して)、空白の入力用にサイズ 0 の配列が作成されます。

于 2013-04-10T14:07:36.260 に答える
1

charAt() 関数を使用して文字列内の各文字を取得し、parseInt() を実行できます。

于 2013-04-10T14:03:36.420 に答える
0

文字列を通過して呼び出すforループを使用するだけですString.charAt(int)

于 2013-04-10T14:03:42.723 に答える
0

試す:

char[] chars = strNumbers.toCharArray();
int[] iArr = new int[chars.length];
for(int i = 0 ; i < chars.length ; ++i) {
    iArr[i] = chars[i] - '0';
}
于 2013-04-10T14:05:31.253 に答える
0

ループ ステートメントを使用して、文字列を繰り返すことができます。次に、部分文字列メソッドを使用して、文字列を個々の番号に切り刻みます。substring() メソッドを使用すると、数値に変換する部分文字列の長さを定義できます。

于 2013-04-10T14:05:37.917 に答える