Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从java字符串中删除所有特殊字符_Java_Android - Fatal编程技术网

从java字符串中删除所有特殊字符

从java字符串中删除所有特殊字符,java,android,Java,Android,我想知道如何才能完全消除字符串中的所有特殊字符。换言之,我只留下单词,这样就消除了+-òçèè等任何其他字符 现在我用 myString = Normalizer.normalize(myString, Normalizer.Form.NFD).replaceAll("[^\\p{ASCII}]", ""); 但是一些特殊字符仍然保留。将\p{ASCII}正则表达式类替换为只包含您允许的字符的更严格的集合。比如说, myString = Normalizer.normalize(myStr

我想知道如何才能完全消除字符串中的所有特殊字符。换言之,我只留下单词,这样就消除了+-òçèè等任何其他字符

现在我用

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

但是一些特殊字符仍然保留。

\p{ASCII}
正则表达式类替换为只包含您允许的字符的更严格的集合。比如说,

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

将首先将重音字符(如
e
分解为两部分
e
+
组合´
(标准格式D),然后正则表达式将删除任何不是ASCII a..z或a..z的字符。

java中的默认字符集是unicode(utf-8),下面的代码使用字符的unicode表示形式,并检查字符的unicode是否为特殊字符; 下面给出的解的时间复杂度为O(n)

public类删除特殊字符{
/**
*@param指定命令行参数
*/
私有静态布尔isSpecialCharacter(int b)
{
如果((b>=32&&b=58&&b=91&&b=123&&b126)
返回true;
返回false;
}
公共静态字符串删除特殊字符(字符串a)
{
StringBuffer s=新的StringBuffer(a);
int lenvar=s.length();
字符串myString=“”;

for(int i=0;iDefine“特殊字符”。例如,
是一个ASCII字母,可以在一个单词中,因此您的问题不包含足够的信息。只需创建一个过滤函数,在将每个不需要的字符替换为“.
@#+#§ù
”后返回字符串-仅删除这些字符?所有其他字符都可以吗?
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)_+_+"));



}


}