私は集合交差点について尋ねるコードイーバルで練習問題をやっています。サイトが入力と出力を期待する方法は、もう少し複雑にするために意図的に複雑になっていると思います。
問題の特定の部分は、2 つのセット (実際には文字列の配列、正確な問題はhttp://codeeval.com/open_challenges/30/にあります) を取り、それらの交点を見つけ、コンマ区切りで順番に出力します。TreeSet を使用して解決しましたが、少し複雑で複雑すぎるため、正規表現を使用して少しきれいにしようとしています。
私はこれを見つけました -
String common = bothSets[0].replaceAll("[^" + bothSets[1] + "]", "");
スタックオーバーフローに関する別の質問。先頭のコンマが残りますが、これを修正しようとしました
int subIndex = 0;
while(common.charAt(subIndex) == ',')
subIndex++;
System.out.println(common.substring(subIndex, common.length()));
小さな文字列サイズやヌル文字列サイズなどのエッジケースを除いて機能し、その後爆発しました。正規表現を修正してwhileループを完全に回避する方がきれいだと思いますが、上記の正規表現に「先頭のコンマを削除」する方法がわかりません。
最後に、私の元の解決策はここにあります - http://pastebin.com/10NuBevB - 正規表現のアプローチのような代替案を検討するのは正しいですか、私はそのペーストビンコードに特に満足していません.まだ。
どんな方向でも大歓迎です。