join() または implode()

配列にjoin()メソッドがあるといいな…と思ったので。*1

Java版join() (配列)


public class Hoge {
public static void main(String args) throws Exception {
String
array1 = {"aaa", "bbb", "ccc"};
String array2 = {"111", null, "333", ""};
String
array3 = null;

System.out.println("array1: [" + join(array1, ", ") + "]");
System.out.println("array2: [" + join(array2, " AND ") + "]");
System.out.println("array3: [" + join(array3, " : ") + "]");
}

public static String join(Object[] array, String sep) {
if(array == null) {
return null;
} else if(array.length < 1) {
return "";
} else if(array.length < 2) {
return (array[0] != null) ? array[0].toString() : "";
}

StringBuffer buf = new StringBuffer((array[0] != null) ? array[0].toString() : "");

for(int i=1; i
実行結果は次の通り。


array1: [aaa, bbb, ccc]
array2: [111 AND AND 333 AND ]
array3: [null]

Java版join() (リスト)

インターフェースを拡張したほうがよいのかな…?


import java.util.Arrays;
import java.util.List;

public class Hoge2 {
public static void main(String args) throws Exception {
List list1 = Arrays.asList(new String
{"aaa", "bbb", "ccc"});
List list2 = Arrays.asList(new String[]{"111", null, "333", ""});
List list3 = null;

System.out.println("list1: [" + join(list1, ", ") + "]");
System.out.println("list2: [" + join(list2, " AND ") + "]");
System.out.println("list3: [" + join(list3, " : ") + "]");
}

public static String join(List list, String sep) {
if(list == null) {
return null;
} else if(list.size() < 1) {
return "";
} else if(list.size() < 2) {
return (list.get(0) != null) ? list.get(0).toString() : "";
}

StringBuffer buf = new StringBuffer((list.get(0) != null) ? list.get(0).toString() : "");

for(int i=1; i

*1:Commonsにあるかも