List list = Arrays.asList("2016:6:12:6:10,"2016:6:8:1:56","2016:6:15:18:37","2016:6:2:8:20");
我希望通过指定几个字符,即上面列表中的"2016:6:15:18:37"
索引,"2016:6:15"
list.indexOf("2016:6:15")
给我o / p not found(-1)这是非常期待的!
如何实现这一目标?
答案 0 :(得分:1)
如果您希望按前缀匹配,可以使用startsWith
执行此操作:
List<String> matches = IntStream.range(0, list.size())
.filter(i -> list.get(i).startsWith("2016:6:15"))
.mapToObj(i -> list.get(i))
.collect(Collectors.toList());
这将为您提供以"2016:6:15"
开头的字符串列表。如果您要查找可能位于中间的字符串,请使用contains
代替startsWith
。
答案 1 :(得分:1)
这样
public static void main(String[] args) {
List<String> list = Arrays.asList("2016:6:12:6:10", "2016:6:8:1:56", "2016:6:15:18:37", "2016:6:2:8:20");
int index = 0;
for (; index < list.size(); index++) {
if (list.get(index).startsWith("2016:6:15"))
break;
}
System.out.println("Index is " + index);
}
,输出
Index is 2
如果要继续查找内存中以模式存储索引开头的所有元素!
答案 2 :(得分:0)
您可以使用StartsWith或包含: 首先指定一个键
String key = "2016:6:15";
现在我们使用循环来查找哪些元素以提供的键开头:
for (Object s : list) {
if (s.toString().startsWith(key)) {//or contains(key);
System.out.println(list.indexOf(s.toString()));
}
}