0

我期待删除字符串中包含的任何数字(带小数)。
例如:
输入:“Xbox 360 版本的游戏获得了 96.92% 和 98/100 的平均评分。” 输出:-“Xbox 版本的游戏获得了 % 和 / 的平均评分。”

我使用正则表达式实现了这一点。但是,我的语法也删除了字符串末尾的句点。

代码:

if(token.matches(".*\\d.*"))  {  
    String s7=token.replaceAll("[0-9,.]", "");  
    s7=s7.replaceAll("( )+", " ");  
    stream.set(s7);  
}
4

2 回答 2

1

试试正则表达式:

\b\d+([.,]\d+)*\b

有关此正则表达式的说明,请参阅http://rick.measham.id.au/paste/explain.pl?regex=%5Cb%5Cd%2B%28%5B.%2C%5D%5Cd%2B%29 * %5Cb。

例如:

public static void main(String[] args) {
    String input = "The game received average review scores of 96.92% and 98/100 for the Xbox 360 version.";
    System.out.println(
        input.replaceAll("\\b\\d+([.,]\\d+)*\\b", "")
    );  // prints "The game received average review scores of % and / for the Xbox  version."
}
于 2013-09-29T05:28:34.003 回答
0

试试这个正则表达式(\d|\.)+,这将匹配数字(包括小数点)然后用“”替换匹配组

尝试这个。

 String str="The game received average review scores of 96.92% and 98/100 for the Xbox 360 version";
            Pattern pattern = Pattern.compile("(\d|\.|,)+");
    Matcher matcher = pattern.matcher(str);
    while (matcher.find()) {
        str=str.replace(matcher.group(),"");
    }
于 2013-09-29T05:36:45.213 回答