回答編集履歴

2

replaceAll を使うコードを追加

2020/12/23 07:28

投稿

kazuma-s
kazuma-s

スコア8224

test CHANGED
@@ -15,3 +15,47 @@
15
15
  `NumberFormat.getNumberInstance().format(Integer.parseInt("1000"))`
16
16
 
17
17
  のようにもできますが、String.format の方が簡単でしょう。
18
+
19
+
20
+
21
+ **追記**
22
+
23
+ replaceAll を使おうとするのは、数字を含む文字列があって、
24
+
25
+ その中の数字の部分だけをコンマ付きにしたいということではないのですか?
26
+
27
+
28
+
29
+ 次のようにすればできます。
30
+
31
+ ```Java
32
+
33
+ class Test {
34
+
35
+ public static void main(String[] args) {
36
+
37
+ String s = "Javaプログラミング入門 2728円";
38
+
39
+ System.out.println(s);
40
+
41
+ System.out.println(s.replaceAll("\d++",
42
+
43
+ String.format("%,d", Integer.parseInt(s.replaceAll("\D", "")))
44
+
45
+ ));
46
+
47
+ }
48
+
49
+ }
50
+
51
+ ```
52
+
53
+ 実行結果
54
+
55
+ ```text
56
+
57
+ Javaプログラミング入門 2728円
58
+
59
+ Javaプログラミング入門 2,728円
60
+
61
+ ```

1

valueOf を parseInt に変更。NumberFormat のコードを追加

2020/12/23 07:28

投稿

kazuma-s
kazuma-s

スコア8224

test CHANGED
@@ -1,9 +1,17 @@
1
- "$0" で正規表現を取得できるのは、replaceAll の第2引数に "$0" を書いた場合です。
1
+ replaceAll の第2引数に "$0" を書いた場合は、正規表現を取得きます。
2
2
 
3
- `new Integer("$0")` では、文字列 "$0" を int に変換できません。
3
+ new Integer("$0") では、文字列 "$0" を int に変換できません。
4
4
 
5
5
 
6
6
 
7
7
  "1000" を "1,000" に変換したいだけなら、
8
8
 
9
- `String.format("%,d", Integer.valueOf("1000"))` で済みます。
9
+ `String.format("%,d", Integer.parseInt("1000"))` で済みます。
10
+
11
+
12
+
13
+ repalceAll を使わずに、
14
+
15
+ `NumberFormat.getNumberInstance().format(Integer.parseInt("1000"))`
16
+
17
+ のようにもできますが、String.format の方が簡単でしょう。