删除字符串中的所有内容,除了。通过0-9和数字-Java

删除字符串中的所有内容,除了。通过0-9和数字-Java,java,regex,numbers,replaceall,Java,Regex,Numbers,Replaceall,我试着读一行文字,从0-9中删除除句点和数字以外的所有内容 这是我正在尝试的,但它删除了除空格以外的所有内容 distance.replaceAll("[^0-9 + \\.]", ""); 文本是(转义是\\而不是一个\),您可以对数字使用\\d。像 String distance = "123zz.0"; System.out.println(distance.replaceAll("[^\\d.]", "")); 产出(按要求) 当在character类中时,是否需要对其进行转义?我尝

我试着读一行文字,从0-9中删除除句点和数字以外的所有内容

这是我正在尝试的,但它删除了除空格以外的所有内容

distance.replaceAll("[^0-9 + \\.]", "");

文本
(转义是
\\
而不是一个
\
),您可以对数字使用
\\d
。像

String distance = "123zz.0";
System.out.println(distance.replaceAll("[^\\d.]", ""));
产出(按要求)


在character类中时,是否需要对其进行转义?我尝试不使用,效果很好。
不是字符类中的特殊字符。通过在character类之后添加
+
,您可以获得非常小的性能提升。另外,由于您仍然有character类,
\\d
并不比
0-9
好,因为它们都是3个字符长。“好吧,我现在不再挑剔了。”安东说得对。OP在原件中有
\.
。这让我很吃惊。你也可以用相反的方式来处理它,而不是移除,取而代之的是你想要的,并在结果上称之为连接。我不确定这在java中是如何工作的,但在javascript中应该是
“123.xx.sdfk234.match(/(\d|\)++/g).join(“”)
,我也不确定,但答案很好。感谢所有帮助过你的人。
123.0