如何在输出中同时获得浮点数和字符串?

时间:2018-01-23 13:13:44

标签: java string groovy

如何获取输出6214.07500000sec

我正在从文件中读取此数据并尝试插入表中。我因为字符串错误而收到错误。

我试图解析:

float t_f = Float.parseFloat(td)

没有帮助。

请提出获取字符串和浮动号码的建议。

2 个答案:

答案 0 :(得分:0)

您不能将完整String存储在float中,因为您已获得" sec"最后,一个解决方案可能就像@notyou在评论中所说的那样将所有内容存储在string中,另一种解决方案可能是将字母与数字分开,这里有一个简短的代码可以解决这个问题:

String output = "6214.07500000sec";

    String letters;
    float number;

    Scanner scan = new Scanner(output);
    number = Float.parseFloat(scan.findInLine("\\d+(\\.\\d+)?"));
    letters = scan.next();
    System.out.println(number);
    System.out.println(letters);

此代码打印:

6214.075
sec

如果您想要所有零,则必须将其存储为String

答案 1 :(得分:0)

def output = '6214.07500000sec'
Map data = (output=~/(\d+(\.\d+)?)(.*)/).find{true}.with{ m-> 
    return [ value: m[1] as Float, measure: m[3] ] 
}
println data

结果:

[value:6214.075, measure:sec]