• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:教えてほしいです。)

コマンドライン引数で2つ整数を入力する値の桁が多いときのエラー処理の書き方

usb_memoryの回答

  • ベストアンサー
回答No.1

かなり適当ですけどこんな感じですかね・・・・。 実際に動かしていないので、コンパイルエラーが発生するかも知れません。。 public static void main(String[] argv) { if(argv.length>=2) { int a,b; try { if(argv[0].indexOf(".") == -1 && argv[1].indexOf(".") == -1) { try { a=Integer.parseInt(argv[0].replaceAll("\\+" , "")); b=Integer.parseInt(argv[1].replaceAll("\\+" , "")); System.out.println(a+b); } catch(NumberFormatException e) { System.out.println("桁でかすぎw"); } } else { System.out.println("小数点がありまっせw"); } } catch(Exception e) { System.out.println ("エラー:2個整数のみ入力して下さい(例:java StudyA/A15_Hello 2 2)"); } } else { System.out.println("エラー:整数ではありません。2個整数を入力して下さい; } }

ojijida
質問者

お礼

助かりました。 IF文とtry~catchは一通り勉強したのですが、再度復習して頑張ります。 有難うございました^^。

関連するQ&A

  • 引数について教えてください。

    誰か教えてください。 今、このプログラム自体は引数に整数を2個入れたら加算されるように出来ていますがこれを何個入れても足せるようにしたいのですが、どのように変更したらいいのか分かりません。 すみませんが、お願いします。 public class Sample20 { public static void main(String[] argv) { if(argv.length != 1) { if(argv.length>=2) { int a,b; try { if(argv[0].indexOf(".") == -1 && argv[1].indexOf(".") == -1) { try { a=Integer.parseInt(argv[0].replaceAll("\\+" , "")); b=Integer.parseInt(argv[1].replaceAll("\\+" , "")); System.out.println(a+b); } catch(NumberFormatException e) { System.out.println("最大9桁までしか実行できません"); } } else { System.out.println("小数点は整数ではないので実行できません"); } } catch(Exception e) { System.out.println ("エラー:2個整数のみ入力して下さい"); } } else { System.out.println("エラー:何も入力されていません"); } } else { System.out.println("エラー:引数が一つしか入力されていません"); } } }

    • ベストアンサー
    • Java
  • 教えてください。。。

    コマンドライン引数を2個 入力したときに加算されるプログラムを作成中なのですが、桁が大きい場合と文字を入力した場合が同じエラー処理になります。 別々に分けるエラー処理を教えて頂きたいと思います。 あと、引数一つの時もエラーになる処理をご教授お願いします。 public class Sample20 { public static void main(String[] argv) { if(argv.length>=2) { int a,b; try { if(argv[0].indexOf(".") == -1 && argv[1].indexOf(".") == -1) { try { a=Integer.parseInt(argv[0].replaceAll("\\+" , "")); b=Integer.parseInt(argv[1].replaceAll("\\+" , "")); System.out.println(a+b); } catch(NumberFormatException e) { System.out.println("整数の桁がおおき過ぎます"); } } else { System.out.println("小数点は整数ではないので実行できません"); } } catch(Exception e) { System.out.println ("エラー:2個整数のみ入力して下さい"); } } else { System.out.println("エラー:整数ではありません。"); } } }

  • 誰か教えてください。

    コマンドライン上で 2つ整数いれて プラスを入れてもエラーにならないプログラムが組みたいのですがどうすればいいのでしょうか? 小数点を入れた場合はエラーにしたいです。 全くわかりませんので申し訳ないですがご回答よろしくお願いします。 public class Sample20 { public static void main(String[] argv) { if(argv.length>=2) { int a,b; try { a=Integer.parseInt(argv[0]); b=Integer.parseInt(argv[1]); System.out.println(a+b); } catch(NumberFormatException e) { //文字が入力された時のエラー System.out.println("エラー:整数を2個入力して下さい"); } } else { //入力がされていなかった時のエラー System.out.println("エラー:整数を2個入力して下さい"); } } }

    • ベストアンサー
    • Java
  • 足し算するプログラム

    タイトルの通りですが足し算をするプログラムを書いてみました。 第一引数を第二引数を足し算するのですが引数に「001」や「002」などの数字が入力された時に足し算した結果として素直に「00*」と足し算が出来ません。何かいい方法は無いでしょうか?教えてください。 import java.text.*; class Tashizan { public static void main(String[] args) { try { if(args.length == 0) { System.out.println("引数を整数値で入力して下さい。"); } else if(args.length == 1) { System.out.println("引数を整数値で2つ入力して下さい。"); } else if(args.length == 2) { int a = Integer.parseInt(args[0]); int b = Integer.parseInt(args[1]); if(a <= 999999999 && b <= 999999999) { int wa = a + b; System.out.println(a + "+" + b + "の和は" + wa + "です。"); } else { System.out.println("入力した桁数を9桁以下か確認してください。"); } } else { System.out.println("引数は整数値で2つ入力して下さい。"); } } catch(NumberFormatException nfe) { System.out.println("整数値を2つ入力して下さい。"); } catch(Exception e) { System.out.println(e + "エラー発生!処理を終了します。"); } } }

    • ベストアンサー
    • Java
  • Java言語のプログラムをC言語にする場合

    次の2つのJava言語のプログラムをC言語にしたいのですが、C言語でプログラムを書いたことがありません。C言語にする場合はどう書けばいいのでしょうか? import java.io.*; public class Sort { public static void main(String[] args) { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); try{ System.out.println("整数値を入力してください"); String line = reader.readLine(); int a = Integer.parseInt(line); String line2 = reader.readLine(); int b = Integer.parseInt(line2); String line3 = reader.readLine(); int c = Integer.parseInt(line3); String line4 = reader.readLine(); int d = Integer.parseInt(line4); int[] data = {a, b, c, d}; for (int i = 0; i< data.length - 1 ; i++) { for (int j = i + 1; j< data.length; j++) { if(data[i] > data[j]) { int e = data[i]; data[i] = data[j]; data[j] = e; } } } System.out.println("昇順に並べ替えると、"); for (int i = 0; i< data.length; i++) { System.out.print(data[i] + " "); } System.out.println("です。"); } catch (IOException e){ System.out.println(e); } catch (NumberFormatException e) { System.out.println("数式の形式が正しくありません。"); } } } import java.io.*; public class Yakusu { public static void main(String[] args) { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); try{ System.out.println("2つの整数値を入力してください"); System.out.print("整数A : "); String line = reader.readLine(); int a = Integer.parseInt(line); System.out.print("整数B : "); String line2 = reader.readLine(); int b = Integer.parseInt(line2); if(a%b == 0){ System.out.println("BはAの約数です"); } else { System.out.println("BはAの約数ではありません"); } } catch (IOException e){ System.out.println(e); } catch (NumberFormatException e) { System.out.println("数式の形式が正しくありません。"); } } }

  • 構文がエラーになる

    Exception in thread"main"java.lang.NoClassDefFoundError という文章でエラーになります。 import java.io.*; class Sample34 { public static void main (String args[])throws IOException { System.out.println("整数を入力してください。"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); int res = Integer.parseInt(str); if(res == 1){ System.out.println("1が入力されました。"); } else if(res == 2){ System.out.println("2が入力されました。"); } else{ System.out.println("1か2を入力してください。"); } } }

  • 注釈処理が明示的にリクエスト

    いつも大変お世話になりありがとうございます。 また、JAVAの質問です。 クラス名'Lesson07'が受け入れられるのは、注釈処理が明示的にリクエストされた場合のみです というエラーが出ます。 どうすればいいか教えてください。 ご回答のほど宜しくお願い申し上げます。 import java.io.Console; public class Lesson07 { public static void main(String[] args) { long a; long b; long answer; Console console = System.console(); System.out.println("2つの値で足し算を行います"); System.out.println("1つ目の値を入力してください"); a = Integer.parseInt(console.readLine()); System.out.println("2つ目の値を入力してください"); b = Integer.parseInt(console.readLine()); answer = a + b; System.out.println(a + "足す" + b + "の答えは" + answer + "です"); }

    • ベストアンサー
    • Java
  • JAVAの初心者です。

    import java.io.*; class Sample1 { public static void main(String args[])throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); do{ System.out.println("1:入力文字整数確かめ"); System.out.println("2:終了"); String hako = br.readLine(); int sen = Integer.parseInt(hako); switch (sen){ case 1: System.out.println("整数を入力してください。"); String hako2 = br.readLine(); int hako3 = Integer.parseInt(hako2); if ((hako3%2)==0){ System.out.println("これは偶数ですね。"); } System.out.println("奇数ですね。"); break; case 2: System.out.println("終了いたします。"); break; } }while(sen != 2); } } 上記のように組んだのですが、}whileのところでエラー が出てしまうのです。 これってなぜなのでしょう?? 初心者特有の質問かもしれませんがご教授いただけたら嬉しいです。宜しくお願いいたします。 関係ないのかも知れませんがJDK1-5-006を使用してます。

    • ベストアンサー
    • Java
  • 処理実行後、終了させないで最初に戻って何度も繰り返したいんですが

    例えば、 class exe{ public static void main(String args[])throws IOException{ BufferedReader Buf = new BufferedReader (new InputStreamReader(System.in)); System.out.println("整数を2つ入力して下さい"); String str1 = Buf.readLine(); String str2 = Buf.readLine(); int a = Integer.parseInt(str1); int b = Integer.parseInt(str2); System.out.println(a + "+" + b + "=" + (a + b)); } } というプログラム(要するにa+bの足し算)があると仮定します。 コマンドプロンプトでデバッグをしているのですが 結果を出力したあと、毎回java exeと入力して実行させてるので プログラムが終わらないで自動的?に また最初の「整数を2つ入力して下さい」に戻りたいのですが何か方法はありますか? forとかwhileとかを使うという意味ではなくて、プログラムを終わらせたくないっていう意味なんですが、 forやwhileを最初につけてcontinueもしくは条件を合わさないようにしてムリヤリ無限ループさせるしか方法はないでしょうか?

  • プログラムの平均値の出し方。

    プログラムの平均値の出し方。 public class pazu{ public static void main(String[] args){ int sum =0,saidai; System.out.println("コマンドラインパラメータは"+args.length+"個です"); for(int i=0;i<args.length;i++){ int x=Integer.parseInt(args[i]); if(pazu.is_even(x)) System.out.println(args[i]+"は偶数です"); else System.out.println(args[i]+"は奇数です"); sum+=x; } saidai=pazu.max(args); System.out.println("合計:"+sum); System.out.println("最大:"+saidai); } static boolean is_even(int number){ return number%2==0; } static int max(String[] number){ int max =0; for(int i=0;i<number.length;i++){ if(max<Integer.parseInt(number[i])){ max=Integer.parseInt(number[i]); } } return max; } } このプログラムで数値の奇遇、合計値、最大値までは出せたのですが平均値の出し方がわかりません。 どこに何を入れればいいかを教えてください。お願いします。