我想删除 String
中的所有数字除了号码 1
和 2
那个独立的。然后我想替换 1
与 one
和 2
与 two
.
例如,我期望的输入输出如下:
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";
所以,1
和 2
在2019
被删除,但是 1
和 2
独立的替换为 one
和 two
.
我试过使用正则表达式,但所有数字都被删除了。这是我的代码:
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
那个独立的。有什么建议吗?
最佳答案
您可以按以下顺序使用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
时,使用字边界也很重要,以避免将这些数字匹配为其他数字的一部分。
关于java - 如何删除字符串中除 "1"和 "2"之外的所有数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58206730/