標準入力(stdin)は、プログラムが標準的に用いるデータ入力元。リダイレクトしない限り、プログラムを起動した端末のキーボードが標準入力になります。UNIX系OSやC言語に実装されて普及した概念ですが、他のOSや言語も含めた総称としても使われます。
Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。
例外処理(Exception handling)とは、プログラム実行中に異常が発生した場合、通常フローから外れ、例外として別の処理を行うようにデザインされたプログラミング言語構造です。
Q&A
4回答
3696閲覧
総合スコア2
0グッド
0クリップ
投稿2021/04/25 05:35
0
標準入力で入力値の範囲を0以上intの最大値に設定したいです。 今はlengthを使って入力値の長さで指定の範囲を設定しています。 java初心者なのでお手柔らかによろしくお願いします。
if (args[1].length() >= 8) { // 入力値の限界を指定。 System.out.println("入力範囲を超えています。"); // 入力値の限界を超えるとエラー処理 System.out.println("正しい範囲で入力してください。"); return; }
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
質問へのコメント
回答4件
Integer.parseInt()で変換する場合 intの最大値を超えると例外が発生するのでそれを拾えばいいかと。
try { v = Integer.parseInt(args[1]); if (v < 0) { throw new NumberFormatException("less than zero"); } } catch (NumberFormatException e) { System.out.println("正しい範囲で入力してください。"); }
投稿2021/04/25 08:33
総合スコア900
org.apache.commons.lang3.math.NumberUtils を使う方法
org.apache.commons.lang3.math.NumberUtils
Java1var value = NumberUtils.toInt(args[1], -1); 2if ( value < 0 ) { 3 System.out.println("正しい範囲で入力してください。"); 4}
Java
1var value = NumberUtils.toInt(args[1], -1); 2if ( value < 0 ) { 3 System.out.println("正しい範囲で入力してください。"); 4}
ライブラリ使わないなら、sigsegvさんの方法がいいかと。
投稿2021/04/26 00:08
総合スコア771
https://docs.oracle.com/javase/jp/8/docs/api/java/math/BigInteger.html をつかう。
$ jshell jshell> BigInteger MIN = BigInteger.ZERO; MIN ==> 0 jshell> BigInteger MAX = BigInteger.valueOf(Integer.MAX_VALUE); MAX ==> 2147483647 jshell> BigInteger input = new BigInteger("3847342836276202612493734"); input ==> 3847342836276202612493734 jshell> if ( input.compareTo(MAX) < 1 ) ; else System.out.println("error"); error jshell> BigInteger input = new BigInteger("384"); input ==> 384 jshell> if ( input.compareTo(MAX) < 1 ) ; else System.out.println("error");
投稿2021/04/25 12:34
総合スコア4157
入力文字列を、long long int とか、int64_t あたりに変換し、intの最大数と比較すればよろしい。
投稿2021/04/25 07:39
総合スコア88186
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
まだベストアンサーが選ばれていません
アカウントをお持ちの方はログイン
15分調べてもわからないことはteratailで質問しよう!
ただいまの回答率85.30%
質問をまとめることで思考を整理して素早く解決
テンプレート機能で簡単に質問をまとめる
入力値の範囲を0以上intの最大値に設定
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。