teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

4

修正

2020/08/07 02:43

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -6,7 +6,7 @@
6
6
  条件文が思いつかないのでtry catchでエラーメッセージを出そうかと思っています。
7
7
  どう例外処理を書けばよいのでしょうか?
8
8
 
9
- 理想は条件文内ですべて完結させることです。(int範囲外の数値になってしまっても8桁で揃える処理を実行)
9
+ 理想は条件文内ですべて完結させることです。(int範囲外(2147483648以上)の数値になってしまっても8桁で揃える処理を実行)
10
10
  ・数値だったら8桁以内 0埋め
11
11
  ・文字列だったらそのまま表示
12
12
 

3

修正

2020/08/07 02:43

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -16,46 +16,46 @@
16
16
  例外処理を通ってくれません
17
17
 
18
18
  ### 該当のソースコード
19
- ```ここに言語を入力
19
+ ```java
20
20
 
21
21
 
22
22
  try {
23
- if (!isCode(txtCode.getText())) { //false 文字列なら何もしない
23
+ if (!isCode(txtCode.getText())) { //false 文字列なら何もしない
24
- s = txtCode.getText();
24
+ s = txtCode.getText();
25
25
 
26
- } else if (txtCode.getText().length() < 8 && isCode(txtCode.getText()) ) {
26
+ } else if (txtCode.getText().length() < 8 && isCode(txtCode.getText()) ) {
27
- s = "00000000" + txtCode.getText();
27
+ s = "00000000" + txtCode.getText();
28
- s = s.substring(s.length() - 8);
28
+ s = s.substring(s.length() - 8);
29
29
 
30
- } else if (txtCode.getText().length() > 8 && isCode(txtCode.getText())) {
30
+ } else if (txtCode.getText().length() > 8 && isCode(txtCode.getText())) {
31
- s = (txtCode.getText().substring(0, 8));
31
+ s = (txtCode.getText().substring(0, 8));
32
32
 
33
- }
33
+ }
34
34
 
35
35
  //ここの例外処理の修正
36
36
  } catch ( Exception e ) {
37
37
  Alert alrt = new Alert(AlertType.ERROR); //アラートを作成
38
- alrt.setTitle("エラー");
38
+ alrt.setTitle("エラー");
39
- alrt.setHeaderText(null);
39
+ alrt.setHeaderText(null);
40
- alrt.setContentText("内容 : 入力範囲外です。");
40
+ alrt.setContentText("内容 : 入力範囲外です。");
41
- alrt.showAndWait();
41
+ alrt.showAndWait();
42
- return;
42
+ return;
43
43
  }
44
44
 
45
- System.out.println(s);
45
+ System.out.println(s);
46
- txtCode.setText(""); //クリアする
46
+ txtCode.setText(""); //クリアする
47
- }
47
+ }
48
48
 
49
49
  //商品コードチェック(数値に変換可能か、文字列か)
50
- public boolean isCode(String c) {
50
+ public boolean isCode(String c) {
51
- try {
51
+ try {
52
52
  Integer.parseInt(c);
53
53
 
54
54
  } catch (NumberFormatException e) {
55
55
  return false;
56
- }
56
+ }
57
57
  return true;
58
- }
58
+ }
59
+
59
60
 
60
- コード
61
61
  ```

2

修正

2020/08/07 02:42

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  文字列か数値かの判定ののち、文字数の判定をしたあと表示をするプログラムですが
4
4
  Integer.parseIntの判定の範囲外(intの範囲外?)になってしまうとisCodeでfalseが返ってきてしまい
5
- 8桁以上の場合そのまま表示されてしまいます。
5
+ 2147483648以上の場合そのまま表示されてしまいます。
6
6
  条件文が思いつかないのでtry catchでエラーメッセージを出そうかと思っています。
7
7
  どう例外処理を書けばよいのでしょうか?
8
8
 

1

修正

2020/08/07 02:39

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -16,7 +16,9 @@
16
16
  例外処理を通ってくれません
17
17
 
18
18
  ### 該当のソースコード
19
+ ```ここに言語を入力
19
20
 
21
+
20
22
  try {
21
23
  if (!isCode(txtCode.getText())) { //false 文字列なら何もしない
22
24
  s = txtCode.getText();
@@ -53,4 +55,7 @@
53
55
  return false;
54
56
  }
55
57
  return true;
56
- }
58
+ }
59
+
60
+ コード
61
+ ```