String formatting considered harmful for novice programmers

Document Type


Publication Date



In Java, System.out.printf and String.format consume a specialised kind of string commonly known as a format string. In our study of first-year students at the Ateneo de Manila University, we discovered that format strings present a substantial challenge for novice programmers. Focusing on their first laboratory we found that 8% of all the compilation errors and 100% of the exceptional, run-time behaviour they encountered were due to the improper construction of format strings. Format strings are a language unto themselves embedded within Java, and they are difficult for novice programmers to master when learning to program. In this article, we present exemplars of students' problematic interactions with the Java compiler and run-time environment when dealing with format strings, discuss these interactions, and recommend possible instructional interventions based on our observations.