为了账号安全,请及时绑定邮箱和手机立即绑定

如果数组中有多个值匹配,如何获取值的最后一个索引号?

如果数组中有多个值匹配,如何获取值的最后一个索引号?

慕运维8079593 2023-05-17 14:27:21
我有一个包含以下值的数组:[Ram、Shyam、Ravi、Ravi、Ravi、Rishi]我想获取每个字符串的索引号,以便如果有匹配的字符串,则获取最后一个匹配的字符串索引。ei 从上面的数组中搜索“ravi”,输出应该给我索引号是。“4”。这是我的代码:Object[] cars = { "Volvo", "Volvo", "BMW", "Ford", "Mazda" };    for (int i = 0; i < cars.length; i++) {        System.out.println(cars[i].lastIndexOf("Volvo"));    }}  输出:0 0 -1 -1 -1
查看完整描述

4 回答

?
红颜莎娜

TA贡献1842条经验 获得超12个赞

List.indexOf()


返回此列表中指定元素第一次出现的索引,如果此列表不包含该元素,则返回 -1。


List.lastIndexOf()


返回此列表中指定元素最后一次出现的索引,如果此列表不包含该元素,则返回 -1


更新 不区分大小写的过滤器


    List<String> cars = Arrays.asList("Volvo", "Volvo", "BMW", "Ford", "Mazda");

    int resultIndex = -1;

    for (int i = cars.size()-1; i >=0; i--) {

        if (cars.get(i).equalsIgnoreCase("volvo")) {

            resultIndex = i;

            break;

        }

    }

    System.out.println(resultIndex);

输出 1


查看完整回答
反对 回复 2023-05-17
?
千巷猫影

TA贡献1829条经验 获得超7个赞

此代码片段可能会帮助您获得所需的内容。


重要提示:调用lastIndexOf()而List不是字符串!


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

test.add("a");

test.add("b");

test.add("a");

test.add("c");

test.add("a");


System.out.println("index is"+ test.lastIndexOf("a"));

预期输出:4(因为“a”位于位置 0、2 和 4)



查看完整回答
反对 回复 2023-05-17
?
呼唤远方

TA贡献1856条经验 获得超11个赞

如果你想要更多可调整的匹配方式,你也可以使用这个(因为从这个问题看来你可能想要不区分大小写的匹配?):


IntStream.range(0, input.length)

    //      .filter(ix -> input[ix].compareToIgnoreCase(pattern) == 0) // ignore case matching

          .filter(ix -> input[ix].contains(pattern)) // substring matching        

          .reduce((a, b) -> b) // get last element

          .orElseThrow(() -> new RuntimeException("Not found"));


查看完整回答
反对 回复 2023-05-17
?
回首忆惘然

TA贡献1847条经验 获得超11个赞

使用地图,键将是字符串,值将是索引。喜欢:


Object[] cars = { "Volvo", "Volvo", "BMW", "Ford", "Mazda" };

Map<String, Integer> map=new HashMap<>();

for (int i = 0; i < cars.length; i++) {

    map.put(cars[i],i);

}

在这里它将更新每个字符串的最后一个索引。用于map.get("Volvo");获取的索引Volvo。


查看完整回答
反对 回复 2023-05-17
  • 4 回答
  • 0 关注
  • 171 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信