「1」と「2」以外の文字列内のすべての番号を削除する方法?

ルディCahyanto:

私は、内のすべての番号を削除したいString除く数1及び2そのスタンドアローン。そして私は交換したい1oneして2two

たとえば、次のように私は期待していること、入力と出力は、次のとおりです。

String myString = "Happy New Year 2019, it's 1 January now,2 January tommorow";

予想される出力:

myString = "Happy New Year, it's one January now,two January tommorow";

だから、12では2019削除されますが、12に置き換えられているだけで立つonetwo

私は正規表現を使用してみましたが、すべての数字が消去されました。ここに私のコードは次のとおりです。

public String cleanNumber(String myString){
    String myPatternEnd = "([0-9]+)(\\s|$)";
    String myPatternBegin = "(^|\\s)([0-9]+)";
    myString = myString.replaceAll(myPatternBegin, "");
    myString = myString.replaceAll(myPatternEnd, "");
    return myString;
}

また、私は、この正規表現と交換しようとした[1][2]けど2019なっtwo0one9

私はどのようにこれを変更するには考えていない1し、2それだけでスタンドを。任意の勧告?

anubhava:

あなたは使用することができreplaceAll、このためには:

myString = myString
          .replaceAll("\\b1\\b", "one") // replace 1 by one
          .replaceAll("\\b2\\b", "two") // replace 2 by two
          .replaceAll("\\s*\\d+", "");  // remove all digits

//=> Happy New Year, it's one January now,two January tommorow

また、単語の境界を使用することが重要です交換しながら、1そして2他のいくつかの数の一部として、これらの数字にマッチするのを避けること。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=312565&siteId=1