2

私は文字列を持っていますarraylist。値が特定の文字と等しい場合、すべての要素のインデックス値を取得する必要があります。

たとえば、値が "." の場合、要素のインデックス値を取得する必要があります。

indexOf()&を使用するlastIndexOf()と、それぞれ最初と最後のオカレンスのインデックス値のみを見つけることができます。

ArrayList<String> als_data = new ArrayList<String>();

als_data[0] = "a"
als_data[1] = "b"
als_data[2] = "a"
als_data[3] = "c"
als_data[4] = "d"
als_data[5] = "a"

今私はのインデックスを見つける必要があります"a"

私の出力は次のようになります

0
2
5

これを行う際に私を助けてください。

4

4 に答える 4

9
String string = "a.b.cc.dddd.ef";

int index = 0;
while((index = string.indexOf('.', index)) != -1) {
    index = string.indexOf('.', index);
    System.out.println(index);
    index++;
}

版画

1
3
6
11

リストに対して同じことをしたい場合は、

List<String> list = new ArrayList<String>();

list.add("aa.bb.cc.dd");
list.add("aa.bb");
list.add("aa.bbcc.dd");

for (String str : list) {
    printIndexes(str, '.');
    System.out.println();
}

private void printIndexes(String string, char ch) {
    int index = 0;
    while((index = string.indexOf(ch, index)) != -1) {
        index = string.indexOf(ch, index);
        System.out.println(index);
        index++;
    }
}

印刷します

2
5
8

2

2
7

編集:著者が質問を明確にした後の更新

List<String> list = new ArrayList<String>();

list.add("abcd");
list.add("pqrs");
list.add("abcd");
list.add("xyz");
list.add("lmn");

List<Integer> indices = new ArrayList<Integer>();

for (int i = 0; i < list.size(); i++) {
    if("abcd".equals(list.get(i))) {
        indices.add(i);
    }
}

System.out.println(indices);
于 2011-03-08T18:16:33.180 に答える
4

それはシンプルで文字列です。

int index=list.indexOf(vale);

見つかったインデックス値を返すようになりました。

于 2013-05-31T05:00:16.367 に答える
1

ええと...これはループで簡単に直線的に行うことができます:

private int[] getIndexe(String searchFor,List<String> sourceArray) {
List<Integer> intArray = new ArrayList<Integer>();
int index = 0;
for(String val:sourceArray) {
   if(val.equals(searchFor)) {
       intArray.add(index);
   }
   index++;
}
return intArray.toArray(new int[intArray.size()]);
}

/// 上記をコンパイルまたは実行しようとはしていませんが、近いはずです。幸運を。

于 2011-03-08T18:14:15.120 に答える
0

を使用しString.indexOf( mychar, fromIndex)ます。

fromIndex 0 から繰り返し、-1 になるまで前の結果を fromIndex として使用します。

于 2011-03-08T18:14:11.983 に答える