我想使用正则表达式从输入字符串中删除不在范围内的所有字符.这是我的代码:
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);
Run Code Online (Sandbox Code Playgroud)
它是如何工作的:
input: test,test test
testtest
Run Code Online (Sandbox Code Playgroud)
为什么它删除了第三次测试?我希望他在这种特殊情况下只删除","和"".
这是因为您使用了扫描仪并且scan.next只接听电话test,test.
调试这些事情的好方法System.out.println(input)是在调用语句之前做一个replaceAll.