这个问题在这里已有答案:
我有一个很长的字符串
String myStr = "PRODUCTION PERIOD 15 DAYS VALIDITY 30 DAYS TOTAL 2.117 BOXES VOLUME 231,78 m 3 NET WEİGHT 10.588,50 kg GROSS WEİGHT 11.700,00 kg"
我从pdf文件中读取了这个字符串。格式永不改变。但价值正在发生变化。
我想获得有效期= 30,总计:2117净值:10.588,50等。每个pdf文件都会出现大胆的字样。
我不知道如何获得这些价值观。任何帮助赞赏。
您可以使用myStr.split()
方法,然后迭代单词。例如:
String myStr = "PRODUCTION PERIOD 15 DAYS VALIDITY 30 DAYS TOTAL 2.117 BOXES VOLUME 231,78 m 3 NET WEİGHT 10.588,50 kg GROSS WEİGHT 11.700,00 kg";
String[] words = myStr.split(" ");
for (int i = 0; i < words.length; i++){
if (words[i].toLowerCase().equals("validity")){
System.out.println("Validity is " + words[i + 1]);
}
if (words[i].toLowerCase().equals("total")){
System.out.println("Total is " + words[i + 1]);
}
if (words[i].toLowerCase().equals("volume")){
System.out.println("Volume is " + words[i + 1]);
}
}
输出 :
Validity is 30
Total is 2.117
Volume is 231,78
您可以使用以下代码。尝试运行它,看看这是否是你要找的。如果需要一次处理1个pdf,您可以遍历pdf文件并执行此循环:
String myStr = "PRODUCTION PERIOD 15 DAYS VALIDITY 30 DAYS TOTAL 2.117 BOXES VOLUME 231,78 m 3 NET WEIGHT 10.588,50 kg GROSS WEİGHT 11.700,00 kg";
int idxValidity = myStr.indexOf("VALIDITY");
int idxDays = myStr.indexOf("DAYS TOTAL");
int idxTotal = myStr.indexOf("TOTAL");
int idxBoxes = myStr.indexOf("BOXES");
int idxWeight = myStr.indexOf("WEIGHT");
int idxKg = myStr.indexOf("kg");
System.out.println((myStr.substring(idxValidity, idxDays)).trim().replace(" ", "="));
System.out.println(myStr.substring(idxTotal, idxBoxes).trim().replace(" ", "="));
System.out.println(myStr.substring(idxWeight, idxKg).trim().replace(" ", "="));