/* * 練習問題13.5 p.291 * 10進数を含む文字列を、右から3桁ごとにカンマで区切られた数に変換するメソッドを書きなさい。 * たとえば、文字列"1543729"が与えられたら、そのメソッドは、文字列"1,543,729"を返します。 */ package ch13.ex13_05; public class SplitStringWithComma { // 右から3桁ごとにカンマで区切る static String splitStringWithComma(String str) { int index = 0; int remainder = str.length() % 3; StringBuilder strbrd = new StringBuilder(str); if (remainder != 0) { index = remainder; } else { index = 3; } // 更新条件: 3文字 + 増えた","分の1文字 for (; index < str.length(); index = index + 3 + 1) { strbrd.insert(index, ","); } return strbrd.toString(); } /** * @param args */ public static void main(String[] args) { System.out.println("1543729: " + splitStringWithComma("1543729")); System.out.println("12: " + splitStringWithComma("12")); System.out.println("123: " + splitStringWithComma("123")); System.out.println("1234: " + splitStringWithComma("1234")); System.out.println("123456789: " + splitStringWithComma("123456789")); } }