2017-02-28 31 views
-1

大丈夫です。 これは私の最初の投稿です。私は のように、私の質問は簡単ですので、 の文字列から特殊文字を削除する命令はありますか? 文字列は のみである必要があります。ユーザーがスペースバーや文字以外の何かを入力すると、 は削除または無視されます。 私の考えは、文字列とシフト文字を左たびに私は、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が生成されますが、それをキャプチャして通常どおり使用できます。 – AntonH

+0

私はそれを試しています おとぎの相手 – Zinou

+0

幸運。簡単に見つけることができるチュートリアルがいくつかあります。それ以上の問題があれば、私はすでにそれに関するいくつかの疑問があると確信していますので、あなたの質問に対する答えを見つけることができることを躊躇しないでください。 – AntonH

答えて

0

他の人が言っているように、Javaの文字列は不変です。 `STRING`クラスの` replaceAll`方法で

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を使用することができます。このお尻にはdeleteCharAt(int)メソッドが含まれています。

+0

はコメントとしては良いでしょうが、これはとにかく役に立ちません。 –

+0

大丈夫兄弟 – Zinou

+0

@ousmane、downvoteに同意して、私は答えを伸ばします。 – iMysak

関連する問題