0

例如,我有以下形式的字符串-:

String str = "The game received average review scores of 96.92% and 98/100 for the Xbox 360 version";

我希望输出如下-:

Output = "The game received average review scores of % and / for the Xbox version"

并且我希望能够过滤掉字符串中的任何数字,无论是十进制数还是浮点数,我尝试使用蛮力的方式来执行此操作-:

String str = "The game received average review scores of 96.92% and 98/100 for the Xbox 360 version";

String newStr = "";

for(int i = 0 ; i < str.length() ; ++i){
if(!Character.isDigit(str.charAt(i)))
   newStr += str.charAt(i);
}

System.out.println(newStr);

但这并不能解决我的目的,如何解决这个问题?

4

2 回答 2

2

您可以使用以下String#replaceAll调用将所有数字(后跟 0 个或更多空格)替换为空字符串:

str.replaceAll("\\d+(,\\d+)*(?:\\.\\d+)?\\s*", "");
于 2013-10-04T20:47:25.793 回答
1

你也许可以使用这样的东西:

str.replaceAll("\\d+(?:[.,]\\d+)*\\s*", "");
于 2013-10-04T20:52:32.187 回答