回答編集履歴
2
半角数字整数判定処理追加
test
CHANGED
@@ -82,6 +82,22 @@
|
|
82
82
|
|
83
83
|
|
84
84
|
|
85
|
+
//整数判定
|
86
|
+
|
87
|
+
Pattern p = Pattern.compile("^[0-9]*$");
|
88
|
+
|
89
|
+
Matcher m = p.matcher(buf);
|
90
|
+
|
91
|
+
if(! m.find()) {
|
92
|
+
|
93
|
+
System.out.println("半角数字以外が入力されました。");
|
94
|
+
|
95
|
+
continue;
|
96
|
+
|
97
|
+
}
|
98
|
+
|
99
|
+
|
100
|
+
|
85
101
|
//3桁カンマ区切りの文字列に変換
|
86
102
|
|
87
103
|
NumberFormat nf = NumberFormat.getInstance();
|
1
NumberFormatに変更
test
CHANGED
@@ -1,6 +1,14 @@
|
|
1
|
-
[3桁ごとにカンマをはさむプログラム例( Java版 )](http://edu.clipper.co.jp/pg-3-7.html)
|
1
|
+
~~[3桁ごとにカンマをはさむプログラム例( Java版 )](http://edu.clipper.co.jp/pg-3-7.html)
|
2
2
|
|
3
|
-
上記より3桁ごとにカンマをはさむコードを引用
|
3
|
+
上記より3桁ごとにカンマをはさむコードを引用~~
|
4
|
+
|
5
|
+
|
6
|
+
|
7
|
+
-修正-
|
8
|
+
|
9
|
+
@katoyさんの回答を参考に、3桁カンマ区切りにする処理を`NumberFormat`へ変更修正しました。
|
10
|
+
|
11
|
+
[Java NumberFormatクラスを使って数値を3桁カンマ区切りにフォーマット(整形)する](https://www.javalife.jp/2018/01/20/post-243/)
|
4
12
|
|
5
13
|
|
6
14
|
|
@@ -76,7 +84,9 @@
|
|
76
84
|
|
77
85
|
//3桁カンマ区切りの文字列に変換
|
78
86
|
|
87
|
+
NumberFormat nf = NumberFormat.getInstance();
|
88
|
+
|
79
|
-
String[] strNum =
|
89
|
+
String[] strNum = nf.format(Integer.parseInt(buf)).split("");
|
80
90
|
|
81
91
|
|
82
92
|
|
@@ -100,64 +110,6 @@
|
|
100
110
|
|
101
111
|
}
|
102
112
|
|
103
|
-
|
104
|
-
|
105
|
-
//以下引用
|
106
|
-
|
107
|
-
//http://edu.clipper.co.jp/pg-3-7.html
|
108
|
-
|
109
|
-
//桁ごとにカンマをはさむプログラム例( Java版 )
|
110
|
-
|
111
|
-
private static String insComma(int num) {
|
112
|
-
|
113
|
-
String result = "";
|
114
|
-
|
115
|
-
String temp = "";
|
116
|
-
|
117
|
-
boolean minus = false;
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
if (num < 0)
|
122
|
-
|
123
|
-
minus = true;
|
124
|
-
|
125
|
-
String nstr = Integer.toString(Math.abs(num));
|
126
|
-
|
127
|
-
int len = nstr.length();
|
128
|
-
|
129
|
-
int keta = 0;
|
130
|
-
|
131
|
-
/* 下位から順に数字を取り出し3桁の区切りに,を入れる */
|
132
|
-
|
133
|
-
for (int i = len - 1; i >= 0; i--) {
|
134
|
-
|
135
|
-
temp += nstr.charAt(i);
|
136
|
-
|
137
|
-
keta++;
|
138
|
-
|
139
|
-
if (keta % 3 == 0 && keta != len)
|
140
|
-
|
141
|
-
temp += ",";
|
142
|
-
|
143
|
-
}
|
144
|
-
|
145
|
-
if (minus)
|
146
|
-
|
147
|
-
temp += "-";
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
/* sに逆順にコピーする */
|
152
|
-
|
153
|
-
for (int i = temp.length() - 1; i >= 0; i--)
|
154
|
-
|
155
|
-
result += temp.charAt(i);
|
156
|
-
|
157
|
-
return result;
|
158
|
-
|
159
|
-
}
|
160
|
-
|
161
113
|
}
|
162
114
|
|
163
115
|
```
|