package digitGroup; /** * 10Áø¼ö¸¦ ÀԷ¹޾Æ, õ(1000)ÀÚ¸® ±¸ºÐÀÚ¸¦ Ãß°¡ÇÏ´Â ÇÁ·Î±×·¥. */ public class DigiGroupAsStr2 { public static void main(String args[]) { int loopCount = 1000000; for (int idx = 0; idx < 10; idx++) { long startMilliTime = System.currentTimeMillis(); benchmark(10, 10, loopCount); long endMilliTime = System.currentTimeMillis(); System.out.println(loopCount + ";" + (endMilliTime - startMilliTime)); loopCount += 1000000; } } private static void benchmark(int startNum, int interval, int loopCount) { int inputNumber = startNum; for (int cnt = 0; cnt < loopCount; cnt++) { convert(inputNumber); inputNumber += interval; } } private static String convert(int number) { final char THOUSANDS_SEPARATOR = ','; // ÀÔ·Â ¼ýÀÚ¸¦ ¹®ÀÚ¿­ ŸÀÔÀ¸·Î º¯È¯ String numberAsStr = String.valueOf(number); StringBuilder sb = new StringBuilder(numberAsStr.length() / 3 + numberAsStr.length()); // ¸Ç ¾ÕºÎºÐ¿¡¼­ Àß¶ó³¾ ±æÀ̸¦ °è»êÇÏ°í, Ãâ·Â ¹öÆÛ¿¡ ´ã´Â´Ù. int firstPos = numberAsStr.length() % 3; int charIdx = 0; for(; charIdx 3) { sb.append(THOUSANDS_SEPARATOR); } counter ++; sb.append(numberAsStr.charAt(charIdx)); } return sb.toString(); } }