private static String printTopLine(Player p, int longestPlayerName) { StringBuilder topLine = new StringBuilder(); topLine.append(String.format("%-" + longestPlayerName + "s|", p.getPlayerName())); topLine.append(String.format("%-3s|| ", p.getRunningTotal())); List<Frame> regFrames = Constants.FRAMES_PER_MATCH > p.getFrames().size() ? p.getFrames() : p.getFrames().subList(0, Constants.FRAMES_PER_MATCH - 1); for (Frame f : regFrames) { topLine.append(String.format("|%3s|", f.toString())); } if (Constants.FRAMES_PER_MATCH <= p.getFrames().size()) { Frame g = p.getFrames().get(Constants.FRAMES_PER_MATCH - 1); topLine.append("|" + g.toString()); for (Frame f : p.getFrames().subList(Constants.FRAMES_PER_MATCH, p.getFrames().size())) { topLine.append(" " + f.toString()); } topLine.append("|"); } topLine.append("\n"); System.out.print(topLine.toString()); return topLine.toString(); }