package beast.util; import java.text.DecimalFormat; import java.text.DecimalFormatSymbols; import java.util.List; import java.util.Locale; /** * some useful methods * * @author Remco Bouckaert * @author Walter Xie */ public class OutputUtils { public final static String SPACE = " "; public static String format(String s) { return format(s, SPACE); } public static String format(String s, String space) { while (s.length() < 8) { s += " "; } return s + space; } public static String format(Double d) { if (Double.isNaN(d)) { return "NaN "; } if (Math.abs(d) > 1e-4 || d == 0) { DecimalFormat f = new DecimalFormat("#0.######", new DecimalFormatSymbols(Locale.US)); String str = f.format(d); if (str.length() > 8) { str = str.substring(0, 8); } while (str.length() < 8) { str += " "; } return str; } else { DecimalFormat f = new DecimalFormat("0.##E0", new DecimalFormatSymbols(Locale.US)); String str = f.format(d); if (str.length() > 8) { String [] strs = str.split("E"); str = strs[0].substring(0, 8 - strs[1].length() - 1) + "E" + strs[1]; } while (str.length() < 8) { str += " "; } return str; } } public static String toString(List<?> list) { String s = ""; for (int i = 0; i < list.size(); i++) { if (i > 0) s += ", "; Object o = list.get(i); s += o.toString(); } return s; } }