删除任何非字母或数字的内容

Or *_*ith 1 java

有没有办法删除Java中的所有字母或数字?

例如,

123$32 -> 12332
1234 abcd /n -> 1234abcd
Run Code Online (Sandbox Code Playgroud)

Two*_*The 6

Java有一个完整的正则表达式实现,只需一行代码即可解决您的问题:

final String test = "123absäöü#+a";
final String result = test.replaceAll("[^\\p{IsDigit}\\p{IsAlphabetic}]", "");
System.out.println(result);
Run Code Online (Sandbox Code Playgroud)

[^\\p{IsDigit}\\p{IsAlphabetic}]方式:

  • [] 任何字符(基于此括号内的定义)
  • ^ 那不是
  • \\p{IsDigit} 一个数字
  • \\p{IsAlphabetic} 字母表中的一个字符

请注意,\\w或[az]仅适用于US-ASCII,并且与语言不兼容.如果你尝试上面的例子,一些字母将丢失.