Java 子字符串的Arraylist indexOf和lastIndexOf
如何在arraylist中获取子字符串的索引 例如,带有以下条目的Arraylist:Java 子字符串的Arraylist indexOf和lastIndexOf,java,android,arraylist,Java,Android,Arraylist,如何在arraylist中获取子字符串的索引 例如,带有以下条目的Arraylist: [60EBFF0003CF030501CF0304, 60EBFF000104FF210D0301A5, 60EBFF0002020301F9100401, 60EBFF0003CF030501CF0304, 60EBFF000104FF210D0301A5] 60EBFF0001始终相同,字符串的其余部分是可变的 indexOf(“60EBFF0001”)返回-1和lastIndexOf(“60EBFF0
[60EBFF0003CF030501CF0304, 60EBFF000104FF210D0301A5, 60EBFF0002020301F9100401, 60EBFF0003CF030501CF0304, 60EBFF000104FF210D0301A5]
60EBFF0001
始终相同,字符串的其余部分是可变的
indexOf(“60EBFF0001”)返回-1
和lastIndexOf(“60EBFF0001”)
也返回-1,但我需要1和3
因为我必须删除索引1之前和索引3之后的所有内容。您可能可以使用自己的类似内容扩展
ArrayList
:
private class MyArrayList extends ArrayList<String> {
@Override
public int indexOf(Object o) {
int foundAtIndex = -1;
for (int index = 0; index < size(); index++) {
if (get(index).contains(((String) o))) {
foundAtIndex = index;
break;
}
}
return foundAtIndex;
}
@Override
public int lastIndexOf(Object o) {
int foundAtIndex = -1;
for (int index = size() - 1; index >= 0; index--) {
if (get(index).contains(((String) o))) {
foundAtIndex = index;
break;
}
}
return foundAtIndex;
}
}
私有类MyArrayList扩展了ArrayList{
@凌驾
public int indexOf(对象o){
int foundAtIndex=-1;
对于(int index=0;index=0;index--){
if(get(index).contains(((String)o))){
foundAtIndex=指数;
打破
}
}
回归基金指数;
}
}
当您的ArrayList实例是列表时,您可以使用以下Java 8代码来确定包含特定子字符串的元素的第一个和最后一个索引:
IntSummaryStatistics stats = IntStream.range(0, list.size())
.filter(i -> list.get(i).contains("60EBFF0001"))
.summaryStatistics();
if (stats.getCount() > 0) {
System.out.println("First index: " + stats.getMin());
System.out.println("Last index: " + stats.getMax());
} else {
System.out.println("No match");
}
顺便说一句,包含60EBFF0001
的元素的最后一个索引不是3而是4。创建一个类并重写equals
和hashCode
方法可能会帮助您,而不是使用普通的String
扫描您给出的示例?60EBFF0001是一个条目的子字符串