package jeql.util; public class StringUtil { public static boolean isWhitespace(String s) { if (s == null) return false; for (int i = 0; i < s.length(); i++) { if (! Character.isWhitespace(s.charAt(i))) return false; } return true; } public static boolean isEqualOrBothNull(String s1, String s2) { if (s1 == null && s2 == null) return true; if (s1 == null || s2 == null) return false; return s1.equals(s2); } /** * Returns a <code>String</code> of repeated characters. * *@param ch the character to repeat *@param count the number of times to repeat the character *@return a <code>String</code> of characters */ public static String stringOf(char ch, int count) { StringBuffer buf = new StringBuffer(); for (int i = 0; i < count; i++) { buf.append(ch); } return buf.toString(); } public static String stringOf(String s, int len) { StringBuffer buf = new StringBuffer(); for (int i = 0; i < len; i++) { buf.append(s); } return buf.toString(); } /** * Pads the right * @param s * @param padStr * @param len * @return */ public static String pad(String s, String padStr, int len) { if (s.length() >= len) return s; String raw = s + stringOf(padStr, len); return raw.substring(0, len); } public static String padLeft(String s, String padStr, int len) { if (s.length() >= len) return s; String raw = stringOf(padStr, len) + s; return raw.substring(raw.length() - len); } public static boolean startsWithIgnoreCase(String input, String prefix) { if (input.length() < prefix.length()) return false; String inputStart = input.substring(0, prefix.length()); return inputStart.equalsIgnoreCase(prefix); } public static boolean endsWith(String input, String suffix) { if (input.length() < suffix.length()) return false; String inputSuf = input.substring(input.length() - suffix.length()); return inputSuf.equals(suffix); } public static boolean endsWithIgnoreCase(String input, String suffix) { if (input.length() < suffix.length()) return false; String inputSuf = input.substring(input.length() - suffix.length()); return inputSuf.equalsIgnoreCase(suffix); } /** * Line-wraps a string s by inserting CR-LF instead of the first space after the nth * columns. */ public static String wrap(String s, int n) { StringBuffer b = new StringBuffer(); boolean wrapPending = false; for (int i = 0; i < s.length(); i++) { if (i % n == 0 && i > 0) { wrapPending = true; } char c = s.charAt(i); if (wrapPending && c == ' ') { b.append("\n"); wrapPending = false; } else { b.append(c); } } return b.toString(); } public static String join( String sep, String[] val) { StringBuilder sbStr = new StringBuilder(); for (int i = 0, il = val.length; i < il; i++) { if (i > 0) sbStr.append(sep); sbStr.append(val[i]); } return sbStr.toString(); } }