Java ArrayList indexOf() 方法 和 String indexOf() 方法区别

文章详细介绍了Java中ArrayList的indexOf()方法和String类的indexOf()方法,包括它们的用法、返回值以及可能出现的-1情况。还提到了lastIndexOf()方法,并指出ArrayList的索引不包含分隔符,而String的索引包括所有字符。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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:返回 [上海, 北京, 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) 方法可返回某个指定的字符串值在字符串中最后出现的位置

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值