public
1 System.out.println(commaSeparatedString(123)); 2 System.out.println(commaSeparatedString(12345)); 3 System.out.println(commaSeparatedString(1234567)); 4 System.out.println(commaSeparatedString(-1234567)); 5 System.out.println(commaSeparatedString(123456789)); 6 System.out.println(commaSeparatedString(-123456789)); 7 8 } 9 10 11 private static char[] commaSeparatedString(int i) { 12 13 //文字列操作を行うためにStringBuilderを用意 14 StringBuilder sb = new StringBuilder(); 15 16 // numberを文字列にして追加 17 sb.add(char.class, toString(number)); 18 // 文字列の後ろから3桁毎にカンマを追加していく 19 20 //文字列の長さの3文字前に初期値を設定 21 22 int offset = sb.length() - 3; 23 24 //文字列の先頭まで繰り返す 25 while(offset < 0) { 26 // -123456等の場合に、 "-、123,456"となってしまわないように 27 // offsetが1でnumberがマイナスの場合は、カンマを追加しないように対処する 28 if(offset != 1 || number > 0) { 29 30 sb.insert(offset,","); 31 } 32 33 //次のカンマの位置は3文字前 34 offset -= 3; 35 36 37 38 39 40 41 } 42 } 43 44 } 45 46 47コード
ここまでしか出来ないし間違いが有ると思います。
教えてください。
※String.format()など、そのままズバリできてしまうメソッドの利用は禁止
回答9件
あなたの回答
tips
プレビュー