从long String获取特定值。在java中

时间:2018-01-02 18:53:09

标签: java string eclipse parsing

我有一个长期的哄骗

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

我不知道如何获得这些价值观。任何帮助都会被暗示。

2 个答案:

答案 0 :(得分: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文件并执行此循环,如果需要一次处理1个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(" ", "="));