回答編集履歴
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();
|