如果这是一个愚蠢的问题,我很抱歉。但我需要知道这一点。
如果我有像字母、数字和特殊章程这样的词。我只需要提取字母。不需要数字和特殊字符。我需要知道 Java 中是否有默认功能来仅拆分字符?
eg.String word="te123@#st";
我只需要测试。
如果这是一个愚蠢的问题,我很抱歉。但我需要知道这一点。
如果我有像字母、数字和特殊章程这样的词。我只需要提取字母。不需要数字和特殊字符。我需要知道 Java 中是否有默认功能来仅拆分字符?
eg.String word="te123@#st";
我只需要测试。
此解决方案适用于重音/非 ascii 字符:
"te123@#st\néàø_".replaceAll("[\\p{Digit}\\p{Punct}\\p{Space}]", "");
试试这个word.replaceAll("[^a-zA-Z]", "");
这将删除所有非字母数字字符,但仍会删除重音字符。
String word = "te123@#st";
word = word.replaceAll("[^\\p{Alpha}]", "");
// or word = word.replaceAll("[\\P{Alpha}]", "");
请参阅apidoc 参考。
String word = "te123@#st";
word = word.replaceAll("[\\W\\d._]", "");
尝试
word = word.replaceAll("\\P{Alpha}", "");
试试这个:
word = word.replaceAll("[\\d@#_]", "");
-我不会使用 来使这个复杂化Regex
,但会使用内置的 Java 功能来回答这个问题。
-先用subString()
method得到String的“abcd”部分,再用toCharArray()
method分解String
成char
元素,再用Character class's
isDigit()
method判断是不是数字。
public class T1 {
public static void main(String[] args){
String s = "te123@#st";
String str = s.substring(0,4);
System.out.println(str);
String tempStr = new String();
char[] cArr = str.toCharArray();
for(char a :cArr){
if(Character.isAlphabetic(a)){
System.out.println(a+" is a alphabet");
tempStr = tempStr + a;
}else{
System.out.println(a+" is not a alphabet");
}
}
System.out.println("The extracted String is: "+tempStr);
}
}