Java子字符串只保留数字和小数
我有一些字符串需要从中删除尾随字符。有几种类型,以下是一些示例: “82.882ft” “101英寸” “15.993立方英尺” “10.221mm” 等等。我需要删除长度分隔符,以便留下字符串: “82.882” "101" "15.993" “10.221” 想法?只需使用正则表达式:Java子字符串只保留数字和小数,java,string,Java,String,我有一些字符串需要从中删除尾随字符。有几种类型,以下是一些示例: “82.882ft” “101英寸” “15.993立方英尺” “10.221mm” 等等。我需要删除长度分隔符,以便留下字符串: “82.882” "101" "15.993" “10.221” 想法?只需使用正则表达式: String result = input.replaceAll("[^0-9.]", ""); 尝试在字符串上使用replaceAll,指定所有非小数点或数字的字符: myString = myStrin
String result = input.replaceAll("[^0-9.]", "");
尝试在字符串上使用replaceAll,指定所有非小数点或数字的字符:
myString = myString.replaceAll("[^0-9\\.]","");
“^0-9”表示不是数字0到9或十进制的所有字符。我们之所以使用两个斜杠是为了避开句点,因为它在Java正则表达式中的含义与文字字符“.”不同。正则表达式可能最适合这种情况
Pattern lp = Pattern.compile("([\\d.]+)(.*)");
// Optional cleanup using Apache Commons StringUtils
currentInput = StringUtils.upperCase(
StringUtils.deleteWhitespace(currentInput));
Matcher lpm = lp.matcher(currentInput);
if( lpm.matches() )
{
// Values
String value = lpm.group(1);
// And the trailing chars for further processing
String measure = lpm.group(2);
}
我有一个想法:编写代码。我看不到一个干净的方法来使用子字符串函数实现这一点。1。查找不属于数字的第一个字符的索引(只有您才能确切知道数字中允许使用哪些字符)。把子字符串带到那个点,因为另一个答案的标题只说“非数字字符”,它没有指定它包含句点(非数字),因此我认为它不一样。仔细看,它们确实包含句点。实际上,在字符类中转义
是不必要的