正则表达式删除空格后的所有字符// Android Java

时间:2019-03-12 07:02:40

标签: java android regex

我尝试使用RegEx将以下字符串1.00 h.转换为1.00,但是我是新手,需要您的帮助。我尝试了如下

seanceLengthValue = Integer.parseInt(
currentService.getSeanceLength().replaceAll("\\D\\w+",""));

3 个答案:

答案 0 :(得分:1)

您可以简单地使用:

seanceLengthValue = Double.parseDouble(
            currentService.getSeanceLength().replaceAll(" [a-zA-Z]", "");

在这里,我们用""替换所有出现的字母和空格。另外,由于结果字符串将是 double ,因此您需要使用Double.parseDouble()进行转换。

答案 1 :(得分:1)

这是您可以做到的

String str = "1.00 h";
Pattern p = Pattern.compile("^(\\S+)");
Matcher m = p.matcher(str);
m.find();
Log.i("Findings", "value is >>" + m.group(0) + "<<");

这将为您提供空白之前的所有内容。

现在,在解析时,需要以浮点或双精度进行解析,因为它具有浮点值。

seanceLengthValue = Float.parseFloat(m.group(0)); 

注意::如果有多个空格,则仍然只会出现第一个空格。

例如;如果字符串是“ 1.00 h 2.00 f”;它只会给出“ 1.00”。

答案 2 :(得分:0)

尝试以下模式:(\d*\.\d+|\d+)

它使用交替来匹配各种类型的十进制数字格式:

\d*\.\d+将匹配零个或多个数字\d,先按点号\.,然后再匹配一个或多个数字\d+,因此它将匹配1.0,.01等。

\d+-如果有小数点分隔符,则匹配一位或多位数字。

Demo