001    package org.bridj.util;
002    import java.util.ArrayList;
003    import java.util.Arrays;
004    import java.util.LinkedList;
005    import java.util.List;
006    import java.util.StringTokenizer;
007    import java.util.regex.Matcher;
008    import java.util.regex.Pattern;
009    public class StringUtils {
010            public static String implode(double[] array, String separator) {
011                    StringBuffer out = new StringBuffer();
012                    boolean first = true;
013                    for (double v : array) {
014                            if (first) first = false;
015                            else out.append(separator);
016                            out.append(v);
017                    }
018                    return out.toString();
019            }
020            
021            public static String implode(Object[] values) {
022                    return implode(values, ", ");
023            }
024            public static String implode(Object[] values, Object separator) {
025                    return implode(Arrays.asList(values), separator);
026            }
027            public static final <T> String implode(Iterable<T> elements, Object separator) {
028                    String sepStr = separator.toString();
029                    StringBuilder out = new StringBuilder();
030                    boolean first = true;
031                    for (Object s : elements) {
032                            if (s == null)
033                                    continue;
034                            
035                            if (first) 
036                                    first = false;
037                            else 
038                                    out.append(sepStr);
039                            out.append(s);
040                    }
041                    return out.toString();
042            }
043            public static final String implode(Iterable<?> strings) {
044                    return implode(strings, ", ");
045            }
046    }