如何从字符串中获取浮点值

use*_*765 7 java regex

我有一个字符串

> 12.4N-m/kg.
Run Code Online (Sandbox Code Playgroud)

从上面的字符串我需要得到一个值12.4.

当我使用替换所有功能str.replaceAll("[^.0-9]", "").

当字符串有两个点时,这不起作用.

浮点值的位置可能不同.

anu*_*ava 11

首先丢弃所有非flot字符然后转换为Float,如下所示:

float f = Float.valueOf("> 12.4N-m/kg.".replaceAll("[^\\d.]+|\\.(?!\\d)", ""));
// now f = 12.4
Run Code Online (Sandbox Code Playgroud)

  • 当然@Munesh:那个正则表达式:`[^ \\ d.] + | \\.(?!\\ d)`意味着它匹配管道`|`两侧的2个子正则表达式之一.LHS匹配除数字或perios之外的任何内容,而RHS表示******后跟一个使用负前瞻的数字的句点. (3认同)