0

このコンテンツを含む文字列があります12345

これらの個々の数値を整数のArrayListに読み込むための最良の方法は何ですか?このような:

{1, 2, 3, 4, 5}

これが私がこれまでに持っているものです:

String data = getData();
this.points=new ArrayList<Integer>();
for (int i=0; i<data.length(); i++) {
    int pt = Integer.parseInt(data.valueOf(i));
    this.points.add(new Integer(pt));
}

問題は、[(0),(1),(2),...]必要な数の代わりに取得することです。

4

7 に答える 7

4

charAt(i)メソッドを使用する必要がありvalueOf(i)、i文字ではなくiの文字列値を返します

于 2013-03-26T14:32:48.483 に答える
2

を使用String.charAtして、位置から対応する文字を取得できますchar。リストに追加するには、に変換する必要がありますint

String data = getData();
this.points=new ArrayList<Integer>();
List<Integer> list = new ArrayList<Integer>();

for (int i = 0; i < data.length(); i++) {
    this.points.add(Character.getNumericValue(data.charAt(i)));
}
于 2013-03-26T14:32:36.723 に答える
2

このソリューションは機能し、メモリ割り当てを最小限に抑える必要があります。データに数値のみが存在することを確認する必要があることに注意してください。

String data = getData();
this.points = new ArrayList<Integer>(); //if this is a field you should use points.clear() instead.

for (int i=0; i<data.length(); i++) {
  this.points.add(Characacter.getNumericValue(data.charAt(i)));
}

問題は、インデックスでメソッドを使用しようとしていたことでしたString.valueOf。これにより、基本的にすべての反復でiの値が返されます。

于 2013-03-26T14:46:32.233 に答える
1

Integer.parseInt整数を取ります。あなたはそれを一桁ずつ取りたいのです。これには、Character.getNumericValue代わりに使用してください。

String data = getData();
this.points=new ArrayList<Integer>();
for (int i=0; i<data.length(); i++) {
    int pt = Character.getNumericValue(data.charAt(i));
    this.points.add(new Integer(pt));
}
于 2013-03-26T14:33:59.463 に答える
0

data.charAt()の代わりに 使用してくださいvalueOf。したがって、コードは次のようになります。

        String data = getData();
        for (int i = 0; i < data.length(); i++) {
            int pt = Integer.parseInt(data.valueOf(data.charAt(i)));
            this.points.add(new Integer(pt));
        }
        for (int i = 0; i < points.size(); i++) {
            System.out.println(this.points.get(i));

        }
于 2013-03-26T14:40:33.567 に答える
0

これを試して

String data = getData();
this.points=new ArrayList<Integer>();
for (int i = 0; i < data.length(); i++) {
    this.points.add(Integer.parseInt(s.charAt(i) + ""));
}
于 2013-03-26T14:47:21.373 に答える
-1

次のようなすべての整数を取得します。

String data = "254980";
List<Integer> list = new ArrayList<Integer>();
for (int i = 0; i < data.length(); i++) {
    list.add(new Integer(data.substring(i,i+1)));
}

テスト:

for (Integer integer : list) {
    System.out.print(integer);
}

プリント

2 
5 
4 
9 
8 
0
于 2013-03-26T14:34:50.747 に答える