从long String获取特定值。在java [重复]

问题描述 投票:-2回答:2

这个问题在这里已有答案:

我有一个很长的字符串

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文件都会出现大胆的字样。

我不知道如何获得这些价值观。任何帮助赞赏。

java string eclipse parsing
2个回答
0
投票

您可以使用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
投票

您可以使用以下代码。尝试运行它,看看这是否是你要找的。如果需要一次处理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(" ", "="));
© www.soinside.com 2019 - 2024. All rights reserved.