回答編集履歴
3
負数最大値に対応(暫定)
    
        answer	
    CHANGED
    
    | @@ -5,12 +5,13 @@ | |
| 5 5 | 
             
              private static String commaSeparatedString(int i) {
         | 
| 6 6 | 
             
                StringBuilder sb = new StringBuilder();
         | 
| 7 7 | 
             
                //負数は正数化
         | 
| 8 | 
            +
                long l = i;
         | 
| 8 | 
            -
                if( | 
| 9 | 
            +
                if(l < 0) {
         | 
| 9 10 | 
             
                  sb.append('-');
         | 
| 10 | 
            -
                   | 
| 11 | 
            +
                  l *= -1;
         | 
| 11 12 | 
             
                }
         | 
| 12 13 | 
             
                //文字列化
         | 
| 13 | 
            -
                String s = ""+ | 
| 14 | 
            +
                String s = ""+l;
         | 
| 14 15 | 
             
                //最初の1~SEPARATE_WIDTH文字を処理
         | 
| 15 16 | 
             
                int e = s.length() % SEPARATE_WIDTH;
         | 
| 16 17 | 
             
                if(e == 0) e = SEPARATE_WIDTH;
         | 
2
"3" を定数化
    
        answer	
    CHANGED
    
    | @@ -1,6 +1,7 @@ | |
| 1 1 | 
             
            String を返す形にしています.
         | 
| 2 2 |  | 
| 3 3 | 
             
            ```java
         | 
| 4 | 
            +
              static final int SEPARATE_WIDTH = 3;
         | 
| 4 5 | 
             
              private static String commaSeparatedString(int i) {
         | 
| 5 6 | 
             
                StringBuilder sb = new StringBuilder();
         | 
| 6 7 | 
             
                //負数は正数化
         | 
| @@ -10,13 +11,13 @@ | |
| 10 11 | 
             
                }
         | 
| 11 12 | 
             
                //文字列化
         | 
| 12 13 | 
             
                String s = ""+i;
         | 
| 13 | 
            -
                //最初の1~ | 
| 14 | 
            +
                //最初の1~SEPARATE_WIDTH文字を処理
         | 
| 14 | 
            -
                int e = s.length() %  | 
| 15 | 
            +
                int e = s.length() % SEPARATE_WIDTH;
         | 
| 15 | 
            -
                if(e == 0) e =  | 
| 16 | 
            +
                if(e == 0) e = SEPARATE_WIDTH;
         | 
| 16 17 | 
             
                sb.append(s.substring(0, e));
         | 
| 17 | 
            -
                //残りを | 
| 18 | 
            +
                //残りをSEPARATE_WIDTH文字ずつ処理
         | 
| 18 | 
            -
                for(int j=e; j<s.length(); j+= | 
| 19 | 
            +
                for(int j=e; j<s.length(); j+=SEPARATE_WIDTH) {
         | 
| 19 | 
            -
                  sb.append(',').append(s.substring(j, j+ | 
| 20 | 
            +
                  sb.append(',').append(s.substring(j, j+SEPARATE_WIDTH));
         | 
| 20 21 | 
             
                }
         | 
| 21 22 |  | 
| 22 23 | 
             
                return sb.toString();
         | 
1
s を更新せず index を使うように修正
    
        answer	
    CHANGED
    
    | @@ -14,11 +14,9 @@ | |
| 14 14 | 
             
                int e = s.length() % 3;
         | 
| 15 15 | 
             
                if(e == 0) e = 3;
         | 
| 16 16 | 
             
                sb.append(s.substring(0, e));
         | 
| 17 | 
            -
                s = s.substring(e);
         | 
| 18 17 | 
             
                //残りを3文字ずつ処理
         | 
| 19 | 
            -
                 | 
| 18 | 
            +
                for(int j=e; j<s.length(); j+=3) {
         | 
| 20 | 
            -
                  sb.append(',').append(s.substring( | 
| 19 | 
            +
                  sb.append(',').append(s.substring(j, j+3));
         | 
| 21 | 
            -
                  s = s.substring(3);
         | 
| 22 20 | 
             
                }
         | 
| 23 21 |  | 
| 24 22 | 
             
                return sb.toString();
         | 
