0

文字列に含まれる数字 (10 進数を含む) を削除することを楽しみにしています。
例:
入力: 「ゲームの平均レビュー スコアは 96.92%、Xbox 360 バージョンでは 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 に答える