不要な文字をすべて削除するJavaコードを作成しようとしています。文字列からホワイトリストにない文字をすべて削除します
例:
String[] whitelist = {"a", "b", "c"..."z", "0"..."9", "[", "]",...}
私はそこに文字のみ(下と大文字)と数字+私が追加することになり、いくつかの次の文字が欲しいです。 その後、文字列内のすべての文字に対してfor()
サイクルを開始し、ホワイトリストにない場合は空の文字列に置き換えます。
しかし、それは良い解決策ではありません。たぶんそれは何らかの形でパターン(正規表現)を使って行うことができますか?ありがとう。 GuavaにあなたがCharMatcher
使用することができ
String input = "BAD good {} []";
String output = input.replaceAll("[^a-z0-9\\[\\]]", "");
System.out.println(output); // good[]
または::ちょうど小文字バージョンを示し
CharMatcher matcher = CharMatcher.inRange('a', 'z')
.or(CharMatcher.inRange('0', '9'))
.or(CharMatcher.anyOf("[]"));
String input = "BAD good {} []";
String output = matcher.retainFrom(input);
を、することが容易になり
'多分それはパターン(正規表現)を使用して、何とか行うことができる'うん、あなたは正しいです? 。 [here](http://www.regexplanet.com/advanced/java/index.html)を開始することができます – ppeterka
どのような文字が許可されていますか?要件に応じて、正規表現は大きく異なる可能性があります。 – nhahtdh