2017-02-28 41 views
-1

好吧。 这是我在这里的第一篇文章,我是一种新的java 所以我的问题很简单: 是否有任何指令在java中删除字符串中的特殊字符? 我的字符串应该只有字母 ,所以当用户输入空格或点或任何不是字母 它应该被删除或忽略 以及我的想法是关于制作一个字符数组和字母左移每个有一些时间是不信 所以我写了这个代码知道x是我的字符串删除字符串中的特殊字符

char h[]=new char [d]; 
for (int f=0;f<l;f++) 
{ 
    h[f]=x.charAt(f); 
} 
int ii=0; 
while (ii<l) 
{ 
    if(h[ii]==' '||h[ii]==','||h[ii]=='-'||h[ii]=='\\'||h[ii]=='('||h[ii]==')'||h[ii]=='_'||h[ii]=='\''||h[ii]=='/'||h[ii]==';'||h[ii]=='!'||h[ii]=='*'||h[ii]=='.') 
    { 
     for(int m=ii;m<l-1;m++) 
     { 
       h[m]=h[m+1];     
     } 
     d=d-1; 
     ii--; 
    } 
    ii++; 
} 

好这个作品它移除了特殊字符,但我不能包括在条件所有异常我不知道是否有更容易的东西:)

+0

看那'String'类的'replaceAll'方法。这将生成一个新的字符串,但您可以捕获它以正常使用它。 – AntonH

+0

对不起,我正在尝试 thanx队友 – Zinou

+0

祝你好运。有几个教程可以很容易找到。任何进一步的问题,我确定已经有几个关于它的SO问题,所以不要犹豫,做一个好的搜索,我相信你可以找到你的问题的答案。 – AntonH

回答

0

正如其他人所说的,Java中的字符串是不可变的。 一个赶上你不希望所有字符的方法是只允许你想要的:

final String input = "some string . "; 
    final StringBuffer sb = new StringBuffer(); 
    final String permittedCharacters = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; 

    for (char c : input.toCharArray()){ 
     if (permittedCharacters.indexOf(c)>=0){ 
      sb.append(c); 
     } 
    } 
    final String endString = sb.toString(); 
+0

niiiice^Q^thanx – Zinou

0

简答 - 不,字符串是不可变的。但您可以使用StringBuffer。这个c ass包含deleteCharAt(int)方法,可能有用。

+0

本来可以作为评论更好,但这无济于事。 –

+0

好吧谢谢兄弟 – Zinou

+0

@ousmane,赞同downvote,我延伸答案。 – iMysak

相关问题