回答編集履歴
3
負数最大値に対応(暫定)
test
CHANGED
@@ -12,17 +12,19 @@
|
|
12
12
|
|
13
13
|
//負数は正数化
|
14
14
|
|
15
|
+
long l = i;
|
16
|
+
|
15
|
-
if(
|
17
|
+
if(l < 0) {
|
16
18
|
|
17
19
|
sb.append('-');
|
18
20
|
|
19
|
-
|
21
|
+
l *= -1;
|
20
22
|
|
21
23
|
}
|
22
24
|
|
23
25
|
//文字列化
|
24
26
|
|
25
|
-
String s = ""+
|
27
|
+
String s = ""+l;
|
26
28
|
|
27
29
|
//最初の1~SEPARATE_WIDTH文字を処理
|
28
30
|
|
2
"3" を定数化
test
CHANGED
@@ -3,6 +3,8 @@
|
|
3
3
|
|
4
4
|
|
5
5
|
```java
|
6
|
+
|
7
|
+
static final int SEPARATE_WIDTH = 3;
|
6
8
|
|
7
9
|
private static String commaSeparatedString(int i) {
|
8
10
|
|
@@ -22,19 +24,19 @@
|
|
22
24
|
|
23
25
|
String s = ""+i;
|
24
26
|
|
25
|
-
//最初の1~
|
27
|
+
//最初の1~SEPARATE_WIDTH文字を処理
|
26
28
|
|
27
|
-
int e = s.length() %
|
29
|
+
int e = s.length() % SEPARATE_WIDTH;
|
28
30
|
|
29
|
-
if(e == 0) e =
|
31
|
+
if(e == 0) e = SEPARATE_WIDTH;
|
30
32
|
|
31
33
|
sb.append(s.substring(0, e));
|
32
34
|
|
33
|
-
//残りを
|
35
|
+
//残りをSEPARATE_WIDTH文字ずつ処理
|
34
36
|
|
35
|
-
for(int j=e; j<s.length(); j+=
|
37
|
+
for(int j=e; j<s.length(); j+=SEPARATE_WIDTH) {
|
36
38
|
|
37
|
-
sb.append(',').append(s.substring(j, j+
|
39
|
+
sb.append(',').append(s.substring(j, j+SEPARATE_WIDTH));
|
38
40
|
|
39
41
|
}
|
40
42
|
|
1
s を更新せず index を使うように修正
test
CHANGED
@@ -30,15 +30,11 @@
|
|
30
30
|
|
31
31
|
sb.append(s.substring(0, e));
|
32
32
|
|
33
|
-
s = s.substring(e);
|
34
|
-
|
35
33
|
//残りを3文字ずつ処理
|
36
34
|
|
37
|
-
|
35
|
+
for(int j=e; j<s.length(); j+=3) {
|
38
36
|
|
39
|
-
sb.append(',').append(s.substring(
|
37
|
+
sb.append(',').append(s.substring(j, j+3));
|
40
|
-
|
41
|
-
s = s.substring(3);
|
42
38
|
|
43
39
|
}
|
44
40
|
|