回答編集履歴

3

追加

2024/10/23 08:30

投稿

jimbe
jimbe

スコア13119

test CHANGED
@@ -37,6 +37,18 @@
37
37
  }
38
38
  ```
39
39
  String.format のフォーマット "%02d" は数値に対してしか使えません。 reserveNum1 は String です。
40
+
41
+ https://docs.oracle.com/javase/jp/8/docs/api/java/util/Formatter.html
42
+ |変換|引数のカテゴリ|説明|
43
+ |:--|:--:|:--|
44
+ |'b', 'B'|一般|引数argがnullの場合、結果は「false」になります。argがbooleanまたはBooleanの場合、結果はString.valueOf(arg)により返される文字列になります。そうでない場合、結果はtrueになります。|
45
+ |'h', 'H'|一般|引数argがnullの場合、結果は「null」になります。それ以外の場合、結果はInteger.toHexString(arg.hashCode())の呼出しで取得されます。|
46
+ |'s', 'S'|一般|引数argがnullの場合、結果は「null」になります。argがFormattableを実装する場合、arg.formatToが呼び出されます。それ以外の場合、結果はarg.toString()の呼出しで取得されます。|
47
+ |'c', 'C'|文字|結果はUnicode文字です。|
48
+ |'d'|整数|結果は、10進整数として書式設定されます。|
49
+
50
+ (以下略)
51
+
40
52
  reserveNum1 を数値に変換して format に通すのが良さそうに見えます。
41
53
  ```java
42
54
  String num1 = String.format("%02d", Integer.parseInt(reserveNum1));

2

追加

2024/10/23 08:21

投稿

jimbe
jimbe

スコア13119

test CHANGED
@@ -28,3 +28,17 @@
28
28
  ```
29
29
  0000000123
30
30
  ```
31
+
32
+ ---
33
+ ```java
34
+ public void setReserveNum1(String reserveNum1) {
35
+ String num1 = String.format("%02d", reserveNum1);
36
+ mData.put("reserveNum1", num1);
37
+ }
38
+ ```
39
+ String.format のフォーマット "%02d" は数値に対してしか使えません。 reserveNum1 は String です。
40
+ reserveNum1 を数値に変換して format に通すのが良さそうに見えます。
41
+ ```java
42
+ String num1 = String.format("%02d", Integer.parseInt(reserveNum1));
43
+ ```
44
+

1

追加

2024/10/23 08:17

投稿

jimbe
jimbe

スコア13119

test CHANGED
@@ -5,3 +5,26 @@
5
5
  String.format の引数になっている no と返り値を受け取る変数 no が同じ名前です。
6
6
  引数の no が int 等だったとしたら int 型と String 型の二つの no 変数が存在することになり、コンパイル出来ません。
7
7
  引数の no が String 型だったとしても、戻り値を受け取る方に "String" と書いていると変数の宣言として扱われるので同じ変数を 2 度宣言することになりコンパイル出来ませんし、 String.format で "%02d" と指定した場合の引数は整数型で無ければなりませんので、その点でも正常に動作は出来ません。
8
+
9
+ どのような入力からどのような出力を得たいのかを具体的な方法・値・コードで書いて頂ければ、修正したコードを出せると思います。
10
+ 例えば標準入力から入力された10文字未満の数字列を数値として扱い10文字右詰め0埋めで表示するのであれば、
11
+ ```java
12
+ import java.util.*;
13
+
14
+ public class Main {
15
+ public static void main(String[] args) throws Exception {
16
+ Scanner sc = new Scanner(System.in);
17
+ int a = sc.nextInt();
18
+ String b = String.format("%010d", a);
19
+ System.out.println(b);
20
+ }
21
+ }
22
+ ```
23
+ 入力
24
+ ```
25
+ 123
26
+ ```
27
+ 出力
28
+ ```
29
+ 0000000123
30
+ ```