首页 > 解决方案 > 解析字符串以获取特定值

问题描述

我正在尝试从 string builder 获取值,我已将 string builder 转换为 string 以获取值,但无助于获取特定值。

我的字符串生成器输出是,

SN: 00486  Mode:     1
Temp. 15.4 C
Fat............... 0.0%
SNF............... 0.4%

进一步替换为类似的字符,

    String i = stringBuilder.toString();
    i = i.replaceAll("[^\\d.]", "");

我的输出是

    004861.15.4...............0.0...............0.4

我希望我的输出只能得到 Temp 、 Fat 和 SNF 的那些值(数字),如果我使用任何循环,我如何用小数点克服这些点?请帮帮我。

预期输出,

Temp 为 15(两位数), Fat 为 0.0,SNF 为 0.4。

标签: javastringparsing

解决方案


试试这个,虽然它是一段丑陋的代码

StringBuilder sb=new StringBuilder("SN: 00486  Mode:     1\n" +
            "Temp. 15.4 C\n" +
            "Fat............... 0.0%\n" +
            "SNF............... 0.4%");
    String str=sb.toString();

    str=str.replace("%","").replace("\n"," ");

    String[] splt=str.split(" ");

    String fullStr="";

    for (String st: splt ) {

        try {
            Double num=Double.parseDouble(st);
            fullStr+=num.toString()+"\n";

        }catch (Exception ex){

        }

    }

    System.out.println(fullStr);

这里所有的数字都是分开的。你也可以分开你想要的。

如果您需要澄清,请询问。


推荐阅读