It was a pretty standard scenario: Lindsay F took over a small project from another department, and that project had a lot of “fun” surprises. Despite accomplishing a fairly simple task – reading in a fixed-width datafile, cleaning up a few things, and inserting it into a database – the application managed to be incredibly complex. Personaly, I blame the language they used: Java.
You’d think that the developers of Java would provide a simple way to convert a string, say "000000028000", into a number, say 280.00. At least Java does provide the System.out.println method. As the comments show, that proved to be an invauable tool in solving this almost impossible string-to-number conversion task ...
if (amount != null && amount.trim().length() > 0) { for (int i = 0; i < amount.length(); i++) { char c = amount.charAt(i); // System.out.println(i + " " + String.valueOf(c)); if (!String.valueOf(c).equals("0")) { // System.out.println(i); if (amount.substring(i).endsWith("00")) { amount = amount.substring(i,amount.length()-2) + ".00"; } else { //System.out.println("old amount" + amount); if (i+2 < amount.length()) { amount = amount.substring(i,amount.length()-2) + "." + amount.substring(amount.length()-2,amount.length()); } else { if (i+2 == amount.length()) { amount = "0." + amount.substring(i); } else { amount = "0.0" + amount.substring(i); } } //System.out.println("new amount" + amount); } break; } } }