2 回答
TA贡献1809条经验 获得超8个赞
最后用了下面这个不雅的版本,因为入口字符串来自Text Recognition,包含一些识别错误。所述方法有时提供更好的结果。
公共列表extract_file_references(字符串字符串){
List<String> output = new ArrayList<>();
for(int i=0; i<string.length(); i++) {
if ((Character.toString(string.charAt(i)).equals("B") || Character.toString(string.charAt(i)).equals("M")) && Character.isDigit(string.charAt(i+1)) && Character.isDigit(string.charAt(i+2)) && Character.isDigit(string.charAt(i+3)) && Character.isDigit(string.charAt(i+4)) && Character.isDigit(string.charAt(i+5)) ) {
output.add(string.substring(i, i+6));
} else if (Character.toString(string.charAt(i)).equals("C") && ((Character.toString(string.charAt(i+1)).equals("B"))||Character.toString(string.charAt(i+1)).equals("M")) && Character.isDigit(string.charAt(i+2)) && Character.isDigit(string.charAt(i+3)) && Character.isDigit(string.charAt(i+4)) && Character.isDigit(string.charAt(i+5)) && Character.isDigit(string.charAt(i+6)) ) {
output.add(string.substring(i, i+7));
} else if (Character.toString(string.charAt(i)).equals("L") && ((Character.toString(string.charAt(i+1)).equals("B"))||Character.toString(string.charAt(i+1)).equals("M")) && Character.isDigit(string.charAt(i+2)) && Character.isDigit(string.charAt(i+3)) && Character.isDigit(string.charAt(i+4)) && Character.isDigit(string.charAt(i+5)) && Character.isDigit(string.charAt(i+6))) {
output.add(string.substring(i, i+7));
}
}//fin du for
return output;
}// fin de extract_file_reference
添加回答
举报