有没有办法删除Java中的所有字母或数字?
例如,
123$32 -> 12332
1234 abcd /n -> 1234abcd
答案 0 :(得分:6)
Java有一个full regex implementation只需一行代码即可解决您的问题:
final String test = "123absäöü#+a";
final String result = test.replaceAll("[^\\p{IsDigit}\\p{IsAlphabetic}]", "");
System.out.println(result);
[^\\p{IsDigit}\\p{IsAlphabetic}]
表示:
[]
任何字符(基于此括号内的定义)^
不是\\p{IsDigit}
数字\\p{IsAlphabetic}
字母表中的字符请注意,\\w
或[a-z]仅适用于US-ASCII,并且与语言不兼容。如果您尝试使用上述示例,则会丢失一些字母。
答案 1 :(得分:1)
包括Java在内的任何编程语言中的正则表达式都可以做到这一点。查看this文章,了解如何在Java中使用正则表达式。
答案 2 :(得分:0)
试用此代码,简单易用
String output = "";
String word = "AbD#$989_=+1";
for (int i = 0; i < word.length(); i++) {
char c = word.charAt(i);
if ((c >= '0' && c <= '9') || (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')) {
output += c;
}
}
System.out.println("outpt: " + output);
答案 3 :(得分:-1)
您应该查看.replaceAll方法。
首先,你应该使用String str作为例子:
String str = new String("1234$no");
str.replaceAll("[^A-Za-z0-9]", "");
return str;
基本上,这将用“”
替换给定序列中的所有内容祝你好运