**StringFormatter** [[https://secure-media.collegeboard.org/digitalServices/pdf/ap/ap16_frq_computer_science_a.pdf|2016 FRQ 4]] import java.util.ArrayList; import java.util.List; /** * AP 2016 FRQ 4 * */ public class StringFormatter { public static int totalLetters( List wordList ) { // add code here for part (a) } public static int basicGapWidth( List wordList, int formattedLen ) { // add code here for part (b) } public static String format( List wordList, int formattedLen ) { // add code here for part (c) } /** * Implementation of leftoverSpaces */ public static int leftoverSpaces(List wordList, int formattedLen) { int spaces = formattedLen-totalLetters(wordList); int gaps = wordList.size()-1; int gapWidth = basicGapWidth(wordList,formattedLen); return spaces - gaps*gapWidth; } public static void testItWith(String[] words, int wordCount, int gaps, int leftOvers) { ArrayList list = new ArrayList(); for (String str:words){ list.add(str); System.out.print(str+ " "); } System.out.print("\nPart A: Total number of letters in words:"+wordCount+"\nyour code:"); System.out.println(totalLetters(list)); System.out.print("Part B Basic gap width: "+gaps+"\nyour code:"); System.out.println(basicGapWidth(list,20 )); System.out.print("Leftover spaces: "+leftOvers+"\nyourcode:"); System.out.println(leftoverSpaces(list,20)); String f = format(list,20); System.out.print("Part C format should have length 20:\nyour code:"); System.out.println(f.length()); System.out.println("\"" +f+ "\""); } public static void main(String[] args) { String[] words1 = {"AP", "COMP", "SCI", "ROCKS"}; String[] words2 = {"GREEN", "EGGS", "AND", "HAM"}; String[] words3 = {"BEACH", "BALL"}; String[] words4 = {"IT","IS", "OK!"}; testItWith(words1, 14, 2, 0); testItWith(words2, 15, 1, 2); testItWith(words3, 9, 11, 0); testItWith(words4, 7, 6, 1); } } [[https://mathorama.com/wiki/doku.php?id=starter_code_for_old_ap_questions|Back to AP Questions from other years]]