簡體   English   中英

從字符串java中刪除所有特殊字符

[英]remove all special character from string java

我想知道如何完全消除字符串中的所有特殊字符。 換句話說,我只留下單詞,從而消除任何其他字符為+-òç@èé等。

現在我用

myString =  Normalizer.normalize(myString, Normalizer.Form.NFD).replaceAll("[^\\p{ASCII}]", "");

但是一些人物仍然存在。

\\p{ASCII} regex類替換為僅包含允許的字符的更嚴格集。 例如,

myString =  Normalizer.normalize(myString, Normalizer.Form.NFD).replaceAll("[^a-zA-Z]", "");

將首先將é等重音字符分解為兩部分e + combining ´ (正常形式D),然后正則表達式將刪除任何不是ASCII a..z或A..Z的字符。

java中的默認字符集是unicode(utf-8),下面的代碼使用字符的unicode表示,並檢查字符的unicode是否為speicial字符; 下面給出的解是時間復雜度= O(n);

public class RemoveSpecialCharacters {

/**
 * @param args the command line arguments
 */

private static boolean isSpecialCharacter(int b)
{
    if((b>=32 && b<=47 )||(b>=58 && b<=64)||(b>=91 && b<=96) ||(b>=123 && b<=126)||b>126)
        return true;
    return false;


}
public static String removeSpecialCharacters(String a)
{
    StringBuffer s=new StringBuffer(a);


    int lenvar=s.length();
    String myString="";
    for(int i=0;i<lenvar;i++)
    {


        if(!isSpecialCharacter(s.charAt(i)))
        {
            myString+=s.charAt(i);


        }

    }
    return myString;


}


public static void main(String[] args) {
   System.out.println(removeSpecialCharacters("fleCKHE)_+_+"));



}


}

O / P:fleCKHE

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM