0

如果这是一个愚蠢的问题,我很抱歉。但我需要知道这一点。

如果我有像字母、数字和特殊章程这样的词。我只需要提取字母。不需要数字和特殊字符。我需要知道 Java 中是否有默认功能来仅拆分字符?

eg.String word="te123@#st";

我只需要测试

4

7 回答 7

3

此解决方案适用于重音/非 ascii 字符:

"te123@#st\néàø_".replaceAll("[\\p{Digit}\\p{Punct}\\p{Space}]", "");
于 2013-01-08T10:36:04.060 回答
2

试试这个word.replaceAll("[^a-zA-Z]", "");

于 2013-01-08T10:17:55.497 回答
2

这将删除所有非字母数字字符,但仍会删除重音字符。

 String word = "te123@#st";
 word = word.replaceAll("[^\\p{Alpha}]", "");  
 // or word = word.replaceAll("[\\P{Alpha}]", "");

请参阅apidoc 参考

于 2013-01-08T10:25:43.903 回答
1
String word = "te123@#st";
word = word.replaceAll("[\\W\\d._]", "");
于 2013-01-08T10:19:04.810 回答
1

尝试

    word = word.replaceAll("\\P{Alpha}", "");
于 2013-01-08T10:25:54.043 回答
0

试试这个:

word = word.replaceAll("[\\d@#_]", "");
于 2013-01-08T10:20:44.433 回答
0

-我不会使用 来使这个复杂化Regex,但会使用内置的 Java 功能来回答这个问题。

-先用subString()method得到String的“abcd”部分,再用toCharArray()method分解Stringchar元素,再用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);
             }
     }
于 2013-01-08T10:39:35.857 回答