考慮下面的代碼:避免代碼重複
if (matcher1.find()) {
String str = line.substring(matcher1.start()+7,matcher1.end()-1);
/*+7 and -1 indicate the prefix and suffix of the matcher... */
method1(str);
}
if (matcher2.find()) {
String str = line.substring(matcher2.start()+8,matcher2.end()-1);
method2(str);
}
...
我有n個的匹配,匹配器全部是獨立的(如果是真的,它沒有提到其他人......),用於這是真正的每個匹配 - 我對其匹配的內容調用了不同的方法。
問題:我不喜歡這裏的代碼重複或「魔術數字」,但我想知道是否有更好的方法來做到這一點......? (也許遊客模式?)有什麼建議嗎?
如果它們是獨立的,則應該能夠製作大正則表達式並使用http://download.oracle.com/javase/tutorial/essential/regex/groups.html遍歷子字符串。 – helpermethod 2011-04-07 08:23:24
@Helper:404在你的鏈接上,「to」連接到.html – amit 2011-04-07 08:27:52
http://download.oracle.com/javase/tutorial/essential/regex/groups.html – helpermethod 2011-04-07 08:53:39