• 締切済み

教えてください。。。

kousaiの回答

  • kousai
  • ベストアンサー率100% (2/2)
回答No.4

>if(argv[0].length() >= 10 && argv[1].length() >= 10) &&(かつ)だと、『両方とも』10桁以上の場合にのみtrueになるので、||(または)を使います。 intの範囲は-2147483648から2147483647までで、その範囲外だとparseInt時に例外(NumberFormatException)が発生します。 こんなかんじでどうでしょう。 public static void main(String[] argv) {  int a = 0, b = 0;  if (argv.length != 2) {   System.out.println("2個の整数のみ入力して下さい");  } else if (argv[0].contains(".") || argv[1].contains(".")) {   System.out.println("小数は整数ではないので実行できません");  } else if (argv[0].length() >= 9 || argv[1].length() >= 9) {   System.out.println("整数の桁が大き過ぎます");  } else {   try {    a = Integer.parseInt(argv[0].replaceAll("\\+", ""));    b = Integer.parseInt(argv[1].replaceAll("\\+", ""));    System.out.println(a + b);   } catch (NumberFormatException e) {    System.out.println("エラー:整数ではありません。");   }  } }

関連する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 { a=Integer.parseInt(argv[0].replaceAll("\\+" , "")); b=Integer.parseInt(argv[1].replaceAll("\\+" , "")); System.out.println(a+b); } catch(Exception e) { System.out.println ("エラー:2個整数のみ入力して下さい(例:java StudyA/A15_Hello 2 2)"); } } else { System.out.println("エラー:整数ではありません。2個整数を入力して下さい; } } }

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

    コマンドライン上で 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("数式の形式が正しくありません。"); } } }

  • javaのプログラミング(連続する整数の和)

    javaのプログラミング(連続する整数の和) 大学で出た課題です。 「ある自然数nを入力し、n=○+○+…+○と連続する整数の和で表すプログラミングをつくれ。」というものです。 以下に、私が考えたものを載せます。これだと連続する2つの整数の和では表すことができるのですが、3つ以上の整数の和を表すことができません。どうすればよいでしょうか? import java.io.*; public class  n { public static void main(String[] args) { int n; BufferedReader rd = new BufferedReader(new InputStreamReader(System.in)); try{ String line; System.out.print("整数:"); line = rd.readLine(); n = Integer.parseInt(line); } catch(IOException e){ System.out.println("入力エラーが発生しました。"); return; } catch(NumberFormatException e){ System.out.println("整数を入力してください。"); return; } for(int i=1;i<=n;i++){ int k=i+1; if(i+k==n) System.out.println(i+"+"+k); } } }

  • 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
  • 無限ループからの脱出

    import java.io.*; public class Test { public static void main(String[] args) throws IOException { String ss; int idt; while(true) { try { BufferedReader f = new BufferedReader(new InputStreamReader(System.in)); System.out.print("数字を入力してください : "); ss = f.readLine(); if(ss == "end") break; idt = Integer.parseInt(ss); System.out.println("あなたの入力した数字は " + idt + " です。"); System.out.println(); } catch(NumberFormatException e) { System.out.println("error : " + e); System.out.println(); } } } } 上記は、コンソールに入力した数字をそのまま出力し、数字以外を入力すると例外処理するプログラムです。 見ていただくと分かるとおり、途中入力したものが「end」だとbreakして無限ループを脱出するということを予定して作りました。 しかしbreakしてくれません。if文の中に処理が移っていないのです。なぜでしょうか? 宜しくお願いします。

    • ベストアンサー
    • Java
  • 注釈処理が明示的にリクエスト

    いつも大変お世話になりありがとうございます。 また、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
  • どうして’)’や’;’が足りないの?

    いつも大変お世話になりありがとうございます。 色々と打ち直したりしているのですが、どうしても コンパイルエラーが出ます。 どうすればいいのでしょうか? C:\JAVA>javac Lesson10.java Lesson10.java:11: エラー: ';'がありません Console console = System console(); ^ Lesson10.java:12: エラー: ')'がありません input = Integer.parseInt(console readLine()); ^ Lesson10.java:12: エラー: ';'がありません input = Integer.parseInt(console readLine()); ^ エラー3個 import java.io.Console; public class Lesson10 { public static void main(String[] args) { final int answer = 3; int input; System.out.println("コンピュータが思い浮かべた数字を当ててね!"); System.out.println("「これだ!」と思う数を1~10までで入力しましょう"); Console console = System console(); input = Integer.parseInt(console readLine()); if (input == answer) { System.out.println("お見事、アタリです!"); }else{ System.out.println("残念、ハズレです!"); } } }

    • ベストアンサー
    • Java