同じメソッドを3回呼び出すのを避けるにはどうすればよいですか?このような状況では何がベストプラクティスですか?それとも正しい方法ですか?戻り値の型でメソッドを呼び出すJavaのベストプラクティス
リストが空でないことを確認しています。空のリストを印刷したくないので、空ではないことを確認するためにもう一度チェックしています。
public class RegExpTest_1 {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();
list.add("item1");
list.add("#item2");
list.add("item3");
list.add("&item4");
list.add("item5");
ArrayList<String> list1 = new ArrayList<String>();
list1.add("item1");
list1.add("item2");
list1.add("item3");
list1.add("item4");
list1.add("item5");
if (StringUtils.isNotEmpty(finditem(list)) || StringUtils.isNotEmpty(finditem(list1))){ // calling method
if (StringUtils.isNotEmpty(finditem(list))) { //calling same method
System.out.println("List :\n" + finditem(list)); //calling same method
}
if (StringUtils.isNotEmpty(finditem(list1))) {
System.out.println("List :\n" + finditem(list1));
}
}
} //main
public static String finditem(ArrayList<String> alist){
StringBuilder sb = new StringBuilder();
String re1=".*?"; // Non-greedy match on filler
String re2="(^#|^&)"; // Word 1
Pattern p = Pattern.compile(re1+re2,Pattern.CASE_INSENSITIVE | Pattern.DOTALL);
for (String str:alist) {
Matcher m = p.matcher(str);
if (m.find()) {
// System.out.println("found" + m.group(1));
sb.append(str);
sb.append("\n");
} else {
// System.out.print("not found");
}
}
return sb.toString();
}
}
戻り値が次の呼び出しを変更しない限り、変数に値をアースします。 – HopefullyHelpful