我想使用正则表达式从输入字符串中删除不在范围内的所有字符。这是我的代码:
System.out.print("Input: ");
Scanner scan = new Scanner(System.in);
String input = scan.next();
scan.close();
String formattedInput = input.replaceAll("[^a-zA-Z]", "");
System.out.println(formattedInput);
这是如何运作的:
input: test,test test
testtest
为什么它删除了第三次测试?我希望他在这种特殊情况下只删除“,”和“”。
答案 0 :(得分:9)
这是因为您使用了扫描仪,而scan.next
只拨打了test,test
。
调试这类事情的好方法是在调用System.out.println(input)
的语句之前执行replaceAll
。