2017-06-26 11 views
0

文字列から特殊文字を削除しようとしましたが、ポイントは "?"残りの文字列は適切に削除されました。 replaceAllなぜ私のreplaceAllが機能しないのですか

for (int i = 0; i < special.length; i++) { 
     source = source.replace(special[i], ""); 
    } 

replacereplaceAllと同じ機能が異なる入力された入力正規表現を使用しているため、

String[] special = {"\\*",";","_","=", "\\[", "\\]", ":", "\\?", "-", "\\.", 
"\\)", "\\(", "/", "!", "#", ",", "\"", "“", "”"}; 
    for (int i = 0; i < special.length; i++) { 
     source = source.replaceAll(special[i], ""); 
    } 

この

は私の文字列

https://file.io/JjiLhD

+0

重複(https://stackoverflow.com/questions/13696461/replace-special-character-with-an-escape-preceded- special-character-in-java)SOの質問です。 –

+0

[Javaで特殊文字をエスケープ特殊文字に置換する]の可能な複製(https://stackoverflow.com/questions/13696461/replace-special-character-with-an-escape-preceded-special-character-in- –

+0

私はそれが重複していることを知っている私はどのように仕事を置き換えるか知っているが、私はちょうど私のテキスト上にまだ疑問符が表示される理由を知りたいのですが他の人が正しく置き換えられた理由 –

答えて

4

あなたが使用する必要がありますreplace代わりのreplaceAllある

リテラルターゲット シーケンスに一致するこの文字列の各部分文字列を、指定されたリテラル置換シーケンスで置き換えます。

+0

答えに感謝します。しかし、私が1回使う代わりにreplaceAllは私のコンテキストをすべて置き換えます。表示されます:( –

+1

いいえ、 'replace' replaceAllタスクは、あなたがそれを試すことができます、それはJava命名問題です、あなたはそれについてjavadocを読むことができます – Jerry06

0

alphanumeric文字を試してみてください。

.replaceAll("[^a-zA-Z0-9]", "")); 

のみalphabetical文字、[本]の

.replaceAll("[^a-zA-Z]", "")); 
関連する問題