gpt4 book ai didi

java - 使用子字符串的数组中元素的索引

转载 作者:搜寻专家 更新时间:2023-11-01 02:06:12 24 4
gpt4 key购买 nike

我需要获取数组中要搜索的元素的索引:

 String[] items = {"One:10.1.22.33", "Two:10.1.21.23", "Three:10.1.21.33", "Four:10.1.21.23", "Five:10.1.22.23"};
String q = "Two"; //need to find index of element starting with sub-sting "Two"

我尝试过的

尝试-1

    String temp = "^"+q;    
System.out.println(Arrays.asList(items).indexOf(temp));

尝试2

items[i].matches(temp)
for(int i=0;i<items.length;i++) {
if(items[i].matches(temp)) System.out.println(i);
}

两者都没有按预期工作。

最佳答案

你最好使用 startsWith(String prefix)像这样:

String[] items = {"One:10.1.22.33", "Two:10.1.21.23", "Three:10.1.21.33", "Four:10.1.21.23", "Five:10.1.22.23"};
String q = "Two"; //need to find index of element starting with substring "Two"
for (int i = 0; i < items.length; i++) {
if (items[i].startsWith(q)) {
System.out.println(i);
}
}

您的第一次尝试没有成功,因为您试图获取列表中字符串 ^Two 的索引,但是 indexOf(String str)不接受正则表达式。

您的第二次尝试无效,因为 matches(String regex)适用于整个字符串,而不仅仅是开头。

如果您使用的是 Java 8,则可以编写以下代码返回以 “Two” 开头的第一项的索引,如果未找到则返回 -1。

String[] items = {"One:10.1.22.33", "Two:10.1.21.23", "Three:10.1.21.33", "Four:10.1.21.23", "Five:10.1.22.23"};
String q = "Two";
int index = IntStream.range(0, items.length).filter(i -> items[i].startsWith(q)).findFirst().orElse(-1);

关于java - 使用子字符串的数组中元素的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32453056/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com