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

Java 如何在输出中同时获得浮点和字符串?,java,string,groovy,Java,String,Groovy,如何获得输出6214.07500000秒 我正在从文件中读取这些数据,并尝试插入到表中。由于字符串错误,我收到一个错误 我已尝试分析: float t_f = Float.parseFloat(td) 没用 请给出一个同时获取字符串和浮点数的建议。您不能将完整的字符串存储在浮点数中,因为您在最后得到了“秒”,一个解决方案可能是如@notyou在注释中所说的那样,将所有内容存储在字符串中,另一个解决方案是将字母和数字分开,下面是一个简短的代码: String output = "6214.075

如何获得输出
6214.07500000秒

我正在从文件中读取这些数据,并尝试插入到表中。由于字符串错误,我收到一个错误

我已尝试分析:

float t_f = Float.parseFloat(td)
没用


请给出一个同时获取字符串和浮点数的建议。

您不能将完整的
字符串
存储在
浮点数中
,因为您在最后得到了“秒”,一个解决方案可能是如@notyou在注释中所说的那样,将所有内容存储在
字符串中,另一个解决方案是将字母和数字分开,下面是一个简短的代码:

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
如果需要所有零,则必须将其存储为
字符串

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]

很抱歉float t_f=float.parseFloat(td)将其存储为
字符串
;它不能同时是两者。如果您想将str更改为float,请使用
toFloat()
。非常感谢您。这就是我要找的“扫描器”