Regex删除空格//Android Java之后的所有字符
我尝试用RegEx将以下字符串Regex删除空格//Android Java之后的所有字符,java,android,regex,Java,Android,Regex,我尝试用RegEx将以下字符串1.00h.转换为1.00,但我对它不熟悉,需要您的帮助。我试过如下方法 seanceLengthValue = Integer.parseInt( currentService.getSeanceLength().replaceAll("\\D\\w+","")); 只需匹配/保留/捕获第一个非空白字符,并将表达式锚定到开头: ^(\S+) 请参见(在Java中,您需要对反斜杠进行转义,使其有效地变成^(\\S+)。尝试以下模式:(\d*.\d+\d+) 它使
1.00h.
转换为1.00
,但我对它不熟悉,需要您的帮助。我试过如下方法
seanceLengthValue = Integer.parseInt(
currentService.getSeanceLength().replaceAll("\\D\\w+",""));
只需匹配/保留/捕获第一个非空白字符,并将表达式锚定到开头:
^(\S+)
请参见(在Java
中,您需要对反斜杠进行转义,使其有效地变成^(\\S+)
。尝试以下模式:(\d*.\d+\d+)
它使用交替来匹配各种类型的十进制数格式:
\d*\.\d+
将匹配零个或多个数字\d
,按字面意思是点\.
,然后是一个或多个数字\d+
,因此它将匹配1.0、.01等
\d+
-匹配一个或多个数字,以防有十进制分隔符
您只需使用:
seanceLengthValue = Double.parseDouble(
currentService.getSeanceLength().replaceAll(" [a-zA-Z]", "");
在这里,我们将所有出现的字母表和空格替换为
“
”。此外,由于生成的字符串将是一个双精度字符串,因此需要使用double.parseDouble()
进行转换。这就是如何进行转换的方法
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) + "<<");
注意:如果有多个空格,它仍然只会给出第一个空格
e、 g;如果字符串为“1.00 h 2.00 f”;它将只给出“1.00”。使用正则表达式将下面的字符串“1.00h”转换为1.00->即使得到1.00,它仍然无法工作。无法将
1.00
解析为int.@Evgeny Ladyzhenskiy:有什么答案对你有用吗?如果是的话,请考虑接受/鼓励他们。
seanceLengthValue = Float.parseFloat(m.group(0));