特定の文字の文字列をスキャンし、見つかった文字列 (存在する場合) を報告するメソッドを作成しようとしています。
// Special characters are ~, #, @, and *
// If text == "Hello~Clarice, you're s#o ambitious", then this
// method should return a string == "~#". If no special characters
// found, return null. If the same special character occurs 2+ times,
// ignore it and do not return strings with duplicate special chars, like
// "##@***", etc. --> just "#@*".
public String detectAndGetSpecialCharacters(String text) {
Pattern p = Pattern.compile("[~#@*]");
Matcher m = pattern.matcher(text);
String specialCharactersFound = null;
if(m.find()) {
// ???
}
return specialCharactersFound;
}
私はこのメソッドの検出部分を完了しましたが、 を使用してどのMatcher
特殊文字が見つかったかを教え、さらにそれらをすべて連結して (重複を削除して) 返す効率的でエレガントな方法を見つけるのに苦労しています。前もって感謝します!