トップページ > プログラム > 2015年08月27日 > h/c9vpsy

書き込み順位&時間帯一覧

20 位/176 ID中時間01234567891011121314151617181920212223Total
書き込み数1001000000001000000000003



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
★★Java質問・相談スレッド174★★ [転載禁止]©2ch.net

書き込みレス一覧

★★Java質問・相談スレッド174★★ [転載禁止]©2ch.net
440 :デフォルトの名無しさん[sage]:2015/08/27(木) 00:25:44.27 ID:h/c9vpsy
abc!def$$ghij%klmn
abcd%efg!hijklmn
abcdefgh$$ijklm!n

みたいな文字列があったとして、$$, !, %のどの文字よりも左にある文字列を抽出するスマートな方法ってある?
上の例だと

abc
abcd
abcdefgh

を抽出したい
★★Java質問・相談スレッド174★★ [転載禁止]©2ch.net
443 :デフォルトの名無しさん[sage]:2015/08/27(木) 03:03:21.34 ID:h/c9vpsy
正規表現も考えてみたのですが

String str = "abcd%efg!hijklmn";

String regex1 = ".+?(?=!)";
String regex2 = ".+?(?=\\$\\$)";
String regex3 = ".+?(?=%)";
Pattern p1 = Pattern.compile(regex1);
Pattern p2 = Pattern.compile(regex2);
Pattern p3 = Pattern.compile(regex3);

Matcher m1 = p1.matcher(str);
if (m1.find()) {
str = m1.group();
}
Matcher m2 = p2.matcher(str);
if (m2.find()) {
str = m2.group();
}
Matcher m3 = p3.matcher(str);
if (m3.find()) {
str = m3.group();
}

System.out.println(str);

なんだか冗長すぎる気がしてしまうのです
これが一番無難な方法でしょうか?
★★Java質問・相談スレッド174★★ [転載禁止]©2ch.net
448 :デフォルトの名無しさん[sage]:2015/08/27(木) 12:34:08.83 ID:h/c9vpsy
>>444-446
これぞスマートな方法です!
勉強になりました どうもありがとうございます!


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。