替换所有不在范围内的字符(Java字符串)
问题内容:
如何替换字符串中不符合条件的所有字符。我在使用NOT运算符时遇到了麻烦。
具体来说,我正在尝试删除所有非数字字符,到目前为止,我已经尝试过:
String number = "703-463-9281";
String number2 = number.replaceAll("[0-9]!", ""); // produces: "703-463-9281" (no change)
String number3 = number.replaceAll("[0-9]", ""); // produces: "--"
String number4 = number.replaceAll("![0-9]", ""); // produces: "703-463-9281" (no change)
String number6 = number.replaceAll("^[0-9]", ""); // produces: "03-463-9281"
问题答案:
解释一下:字符类开头的^将使该类取反,但必须在类内部才能起作用。字符类外部的相同字符是字符串/行开头的锚点。
您可以尝试以下方法:
"[^0-9]"