package tools; import java.io.BufferedInputStream; import java.io.FileInputStream; public class StringUtil { public static String getLeftPaddedStr(String in, char padchar, int length) { StringBuilder builder = new StringBuilder(length); for (int x = in.getBytes().length; x < length; x++) { builder.append(padchar); } builder.append(in); return builder.toString(); } public static String getRightPaddedStr(String in, char padchar, int length) { StringBuilder builder = new StringBuilder(in); for (int x = in.getBytes().length; x < length; x++) { builder.append(padchar); } return builder.toString(); } public static String joinStringFrom(String[] arr, int start) { return joinStringFrom(arr, start, " "); } public static String joinStringFrom(String[] arr, int start, String sep) { StringBuilder builder = new StringBuilder(); for (int i = start; i < arr.length; i++) { builder.append(arr[i]); if (i != arr.length - 1) { builder.append(sep); } } return builder.toString(); } public static String makeEnumHumanReadable(String enumName) { StringBuilder builder = new StringBuilder(enumName.length() + 1); for (String word : enumName.split("_")) { if (word.length() <= 2) { builder.append(word); } else { builder.append(word.charAt(0)); builder.append(word.substring(1).toLowerCase()); } builder.append(' '); } return builder.substring(0, enumName.length()); } public static int countCharacters(String str, char chr) { int ret = 0; for (int i = 0; i < str.length(); i++) { if (str.charAt(i) == chr) { ret++; } } return ret; } public static String getReadableMillis(long startMillis, long endMillis) { StringBuilder sb = new StringBuilder(); double elapsedSeconds = (endMillis - startMillis) / 1000.0D; int elapsedSecs = (int) elapsedSeconds % 60; int elapsedMinutes = (int) (elapsedSeconds / 60.0D); int elapsedMins = elapsedMinutes % 60; int elapsedHrs = elapsedMinutes / 60; int elapsedHours = elapsedHrs % 24; int elapsedDays = elapsedHrs / 24; if (elapsedDays > 0) { boolean mins = elapsedHours > 0; sb.append(getLeftPaddedStr(String.valueOf(elapsedDays), '0', 2)); sb.append("天"); if (mins) { boolean secs = elapsedMins > 0; sb.append(getLeftPaddedStr(String.valueOf(elapsedHours), '0', 2)); sb.append("时"); if (secs) { boolean millis = elapsedSecs > 0; sb.append(getLeftPaddedStr(String.valueOf(elapsedMins), '0', 2)); sb.append("分"); if (millis) { sb.append(getLeftPaddedStr(String.valueOf(elapsedSecs), '0', 2)); sb.append("秒"); } } } } else if (elapsedHours > 0) { boolean mins = elapsedMins > 0; sb.append(getLeftPaddedStr(String.valueOf(elapsedHours), '0', 2)); sb.append("时"); if (mins) { boolean secs = elapsedSecs > 0; sb.append(getLeftPaddedStr(String.valueOf(elapsedMins), '0', 2)); sb.append("分"); if (secs) { sb.append(getLeftPaddedStr(String.valueOf(elapsedSecs), '0', 2)); sb.append("秒"); } } } else if (elapsedMinutes > 0) { boolean secs = elapsedSecs > 0; sb.append(getLeftPaddedStr(String.valueOf(elapsedMins), '0', 2)); sb.append("分"); if (secs) { sb.append(getLeftPaddedStr(String.valueOf(elapsedSecs), '0', 2)); sb.append("秒"); } } else if (elapsedSeconds > 0.0D) { sb.append(getLeftPaddedStr(String.valueOf(elapsedSecs), '0', 2)); sb.append("秒"); } else { sb.append("None."); } return sb.toString(); } }