java - 在java中解析字符串以获取信息

标签 java string string-parsing

我想知道是否有一种方法可以解析该字符串以获取与每个描述符关联的数值。我想使用这些值来更新总数和平均值等。

字符串看起来像这样:

D/TESTING:﹕ 17-08-2015 13:28:41 -0400
    Bill Amount: 56.23      Tip Amount: 11.25
    Total Amount: 67.48     Bill Split: 1
    Tip Percent: 20.00

字符串的代码如下所示:

String currentTransReport = getTime() +
            "\nBill Amount: " + twoSpaces.format(getBillAmount()) +
            "\t\tTip Amount: " + twoSpaces.format(getTipAmount()) +
            "\nTotal Amount: " + twoSpaces.format(getBillTotal()) +
            "\t\tBill Split: " + getNumOfSplitss() +
            "\nTip Percent: " + twoSpaces.format(getTipPercentage() * 100);

我想提取每个值,例如账单金额,然后将值存储在要使用的变量中。我可以访问包含信息的唯一字符串,而不是构建该字符串的代码或信息。

最佳答案

尝试像这样开始吗?这将从您当前正在查找的子字符串之后开始,并以子字符串之后的制表符结束。您可能需要将此制表符更改为其他字符。希望语法没问题,我已经离开 java 一段时间了。

String myString = "17-08-2015 13:28:41 -0400Bill Amount: 56.23      Tip Amount: 11.25  Total Amount: 67.48     Bill Split: 1 Tip Percent: 20.00 ";
String substrings[] = {"Bill Amount: ", "Tip Amount: ", "Total Amount: ", "Bill Split: ", "Tip Percent: "};
String results[] = new String[5];

for (int i = 0; i < substrings.length; i++){
    int index = myString.indexOf(substrings[i]) + substrings[i].length(); // where to start looking
    String result = myString.substring(index, myString.indexOf(" ", index));
    results[i] = result;
}

刚刚确认,这大部分有效,唯一的问题是字符串末尾没有“”字符。

关于java - 在java中解析字符串以获取信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32056760/

相关文章:

c# - 如何判断 Request.Form 中的值是否为数字? (C#)

Javascript 将时间转换为括号

c# - 字符串格式和十六进制字符

c# - MySQL(或 C#)不匹配 double 或小数

ruby - 脚本文本 ruby​​ 中的 JSON 解析错误

java - 如何反编译基于jhipster的war文件

java - 使用哪个 playframework Json java 类?

java - 使用 javax.sound.sampled 生成声音

JavaFX 2.0 窗口到托盘

c# - 仅替换字符串开头的字符