回答編集履歴
1
回答へのコメントを受けて追記、修正。
answer
CHANGED
|
@@ -1,41 +1,76 @@
|
|
|
1
1
|
色んな方法があります。簡単なものを3つほど。
|
|
2
|
+
** ※回答へのコメントを受けてコードと実行例を追記、修正しています: 2020/08/06 14:28 **
|
|
2
3
|
|
|
3
4
|
```Java
|
|
4
5
|
public class Main {
|
|
5
|
-
|
|
6
|
+
public static void main(String[] args) {
|
|
6
|
-
|
|
7
|
+
String s;
|
|
7
8
|
|
|
8
|
-
|
|
9
|
+
// (1) 整数ならString.format()を使えば良い
|
|
9
|
-
|
|
10
|
+
s = String.format("%08d", 12);
|
|
10
|
-
|
|
11
|
+
System.out.println(s);
|
|
11
12
|
|
|
12
|
-
|
|
13
|
+
// (2) 文字列だったら あらかじめ頭に"00000000"を付けてから結合し、
|
|
13
|
-
|
|
14
|
+
// 後ろから8文字を取り出せばよい。
|
|
14
|
-
|
|
15
|
+
String sn = "123";
|
|
15
|
-
|
|
16
|
+
s = "00000000" + sn;
|
|
16
|
-
|
|
17
|
+
s = s.substring(s.length() - 8);
|
|
17
|
-
|
|
18
|
+
System.out.println(s);
|
|
18
19
|
|
|
19
|
-
|
|
20
|
+
// (3) あくまでforを使いたいなら、足りない分、前に"0"を付けるべく、生成。
|
|
20
|
-
|
|
21
|
+
sn = "78";
|
|
21
|
-
|
|
22
|
+
StringBuilder sb = new StringBuilder();
|
|
22
|
-
|
|
23
|
+
for (int i = sn.length(); i < 8; i++) {
|
|
23
|
-
|
|
24
|
+
sb.append("0");
|
|
24
|
-
|
|
25
|
+
}
|
|
25
|
-
|
|
26
|
+
// 最後に追加する。
|
|
26
|
-
|
|
27
|
+
sb.append(sn);
|
|
27
|
-
|
|
28
|
+
System.out.println(sb.toString());
|
|
29
|
+
|
|
30
|
+
// ※ここから追記
|
|
31
|
+
// (4)
|
|
32
|
+
// 最後にStringBuilderからStringにするときに加工すれば、パターン全てに対応できる。
|
|
33
|
+
// s = sb.substring(sb.length() - 8);
|
|
34
|
+
|
|
35
|
+
// (4)-a 8文字に満たない場合
|
|
36
|
+
sn = "678";
|
|
37
|
+
sb = new StringBuilder();
|
|
38
|
+
for (int i = sn.length(); i < 8; i++) {
|
|
39
|
+
sb.append("0");
|
|
28
|
-
|
|
40
|
+
}
|
|
41
|
+
sb.append(sn);
|
|
42
|
+
s = sb.substring(sb.length() - 8);
|
|
43
|
+
System.out.println("4-a: " + s);
|
|
44
|
+
|
|
45
|
+
// (4)-b ちょうど8文字の場合
|
|
46
|
+
sn = "12345678";
|
|
47
|
+
sb = new StringBuilder();
|
|
48
|
+
for (int i = sn.length(); i < 8; i++) {
|
|
49
|
+
sb.append("0");
|
|
50
|
+
}
|
|
51
|
+
sb.append(sn);
|
|
52
|
+
s = sb.substring(sb.length() - 8);
|
|
53
|
+
System.out.println("4-b: " + s);
|
|
54
|
+
|
|
55
|
+
// (4)-c 8文字を超える場合
|
|
56
|
+
sn = "123456789012345678";
|
|
57
|
+
sb = new StringBuilder();
|
|
58
|
+
for (int i = sn.length(); i < 8; i++) {
|
|
59
|
+
sb.append("0");
|
|
60
|
+
}
|
|
61
|
+
sb.append(sn);
|
|
62
|
+
s = sb.substring(sb.length() - 8);
|
|
63
|
+
System.out.println("4-c: " + s);
|
|
64
|
+
}
|
|
29
65
|
}
|
|
30
66
|
```
|
|
31
67
|
|
|
32
68
|
実行例です。
|
|
33
69
|
```sh
|
|
34
|
-
$ javac Main.java
|
|
35
|
-
$ java Main
|
|
36
70
|
00000012
|
|
37
71
|
00000123
|
|
38
72
|
00000078
|
|
39
|
-
|
|
73
|
+
4-a: 00000678
|
|
40
|
-
|
|
74
|
+
4-b: 12345678
|
|
75
|
+
4-c: 12345678
|
|
41
76
|
```
|