所以我使用谷歌相机 api 创建光学文本阅读器进行 OCR。从相机读取时,我想通过将读取的字符串与字符串列表匹配来过滤读取的字符串,如果读取的字符串部分匹配,则添加并显示列表中的项目。
除了过滤之外的一切都有效。
假设我有一个包含字符串的列表:
"BigSizeScrew 45**"
我想匹配读取的字符串:
"BigSizeScrew"
...添加到带有数字的字符串,然后添加包含数字的字符串。
数字和星星是出于其他原因但必须保留,原因与问题无关。
tl;博士:
如何将字符串部分匹配到列表中的现有字符串?
我有以下内容,但它专门搜索 100% 匹配的字符串,而不是如果检查的字符串包含读取字符串的子字符串。
for(int i =0;i<items.size();++i){
if (list.contains(items.valueAt(i))) {
TextBlock item = items.valueAt(i);
stringBuilder.append(item.getValue());
stringBuilder.append("\n");
}
}
编辑:
该列表包含大约 200 个不同的字符串,这些字符串应该是部分匹配的。但一切都是一样的;部分匹配主字符串,但不匹配数字/星星。
最佳答案
使用indexOf()方法。方法的索引给出匹配字符串的索引。所以它的值大于-1,这意味着搜索字符串存在于列表中,并且您可以使用该字符串。
关于Java从列表中查找部分匹配的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46134568/