Java ArrayListのindexOf()メソッドとStringのindexOf()メソッドの違い

1、ArrayList indexOf() 方法

IndexOf(Object obj) メソッドは、動的配列内の要素のインデックス値を返します。

戻り値は次のとおりです。

配列内で最初に出現する obj 要素のインデックス値を返します。インデックスの添字は 0 から始まります。

指定された要素が動的配列に存在しない場合、indexOf() メソッドは -1 を返します。

ArrayList<String> aa = new ArrayList<>();
aa.add("上海");
aa.add("北京");
aa.add("a");
aa.add("p");
aa.add("p");
System.out.println(aa); // [上海, 北京, a, p, p]
int b = aa.indexOf("app");
int e = aa.indexOf("海");
int f = aa.indexOf("北京");
int h = aa.indexOf("p");
System.out.println(b);//结果为 -1 因为不存在 app 的值
System.out.println(e);//结果为 -1 因为不存在 海 的值
System.out.println(f);//结果为 1  北京出现的位置索引下标为1
System.out.println(h);//结果为 3  p第一次出现的位置索引下标为3

 2、String indexOf(String str) 方法

IndexOf(String str) メソッドは、文字列内で最初に出現した指定された文字列値を返します。インデックスの添え字は 0 から始まります。

一致する文字列が見つからない場合は -1 を返します。

String a = "A,B2,CDF,D,F";
int c = a.indexOf("B");
int g = a.indexOf("D");
int j = a.indexOf("F");
int k = a.indexOf("上");
int u = a.indexOf("D",7);
System.out.println(c);//结果为:2  B出现的位置索引下标为2
System.out.println(g);//结果为:6  D出现的位置索引下标为6
System.out.println(j);//结果为:7  F出现的位置索引下标为7
System.out.println(k);//结果为:-1 上 未出现返回-1
System.out.println(u);//结果为:9  在第7个位置开始查找字符 "D" 第一次出现的位置,所以是9

3、string .indexOf( String str,int fromIndex ) メソッド

str: 取得する文字列値

fromIndex:検索を開始する文字列内の位置を指定します。

String a = "A,B2,CDF,D,F";
int u = a.indexOf("D",7);
System.out.println(u);//结果为:9  在第7个位置开始查找字符 "D" 第一次出现的位置,所以是9

 4. 両者の違い

ArrayList:indexOf(Object obj) メソッドは、動的配列内の最初に出現した要素のインデックス値を返します。

String:indexOf(String str) メソッドは、文字列内で指定された文字列値が最初に出現する位置を返します。

5. 最も誤解を招きやすい場所は

たとえば、上記の例:

文字列 string に, (カンマ) があり、これもインデックスの添え字としてカウントされます。

そして ArrayList: return [Shanghai,Beijing,a,p,p] このうち、  (カンマ)は添字としてカウントされず、配列の値に応じて添字をチェックするためのもので、

クエリ int b = aa.indexOf("app") は配列内の [a,p,p] ではありません

配列に[上海、北京、a、p、p、app]がある場合、5を返します。

6. 拡張機能: ArrayList lastIndexOf() メソッドおよび String lastIndexOf() メソッド

ArrayList: lastIndexOf(Object obj) メソッドは、動的配列内の要素のインデックス値の最後の位置を返します。

String: lastIndexOf(String str) メソッドは、文字列内で指定された文字列値が最後に出現した位置を返します。

 

おすすめ

転載: blog.csdn.net/SUMMERENT/article/details/129324143