質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

Q&A

解決済

2回答

19681閲覧

コマンドライン引数で数字以外の文字列が渡された場合の書き方がわかりません。

Tutti

総合スコア83

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

0グッド

0クリップ

投稿2016/06/28 01:28

コマンドライン引数の数が2未満の場合は
『エラー:引数の数が足りません。』と表示し、
コマンドライン引数で数字以外の文字列が渡された場合には
『エラー:数字以外が入力されました。』と表示してください。

この問題で、if文を使おうと思っているのですが、数字以外の文字列が渡された場合のif文の書き方がわかりません。
どなたか教えていただけませんか。

//引数が2未満の場合『エラー:引数の数が足りません。』と表示
if( 2 >= args.length ){

System.out.println("『エラー:引数の数が足りません。』"); //引数が数字以外の文字列が渡された場合 }else(1 != "a"){ }

今、このように書いています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

java

1if(args[0].matches("[0-9]+")){ 2 //数字のみが含まれているとき 3}else{ 4 //数字以外が含まれているとき 5 System.out.println("『エラー:数字以外が入力されました。』"); 6}

正規表現を使ってみるとこんな感じ
intへの変換処理はやってないので数字のみが含まれているときの処理で行ってください

投稿2016/06/28 02:31

編集2016/06/28 02:34
tignear

総合スコア260

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

argsは、String型なので、まずはintに変換すると良いでしょう。

Integer (Java Platform SE 6)

Java

1int i1 = Integer.parseInt(args[0]);

のようにすると変換してくれますが、変換できなかった場合に例外が発生するので
try〜catchで囲むと判定できます。

Java

1int i1 = 0; 2try { 3 i1 = Integer.parseInt(args[0]); 4} catch (NumberFormatException e) { 5 System.out.println("『エラー:数字以外が入力されました。』"); 6} 7

ざっくりと書いたコードなので、間違っている箇所があるかも知れませんが
おおよそこんな感じでいけるはずです。

投稿2016/06/28 02:01

Mr_Roboto

総合スコア2208

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Tutti

2016/06/28 02:08

引数が数字以外の文字列が渡された場合 は、elseではなく、try文を使用するということですか?
Mr_Roboto

2016/06/28 02:14

引数が数字以外というのが事前に確定しているなら他の方法でもいけるかも知れません。 私の回答だと、何が来るか分からない前提での処理です。 args[0].isInteger() みたいなメソッドがあるとifでできるんですけどね。 Javaでは、無いのでこういうやり方になるかと思います。 他の回答者がもっと素晴らしい回答をくれると思います^^
Tutti

2016/06/28 02:29

いえいえ。何が来るか分からない前提での処理なので、try文を使用するやり方で大丈夫だと思われます。ただ、私自身が、if文にこだわっていたので、なぜtry文が出できたのか疑問に思っただけです。m(_)m もう一度try文をいつ使用できるか見直します。助けていただきありがとうございます。
退会済みユーザー

退会済みユーザー

2016/06/28 15:07

if( 2 >= args.length ) は2個「以下」なので、 if( 2 > args.length )が正しいですね。 他の回答者の通り、 一般に、文字列から数字を取得する場合はInteger.parseInt()を使います。 ただし、文字列の先頭にマイナスまたはプラスがあっても数字としてみなされます。 catch節を使うことに違和感があるかもしれませんが、問題ないですよ。
Tutti

2016/07/08 00:20

sipadan2003さん!とても丁寧に分かりやすく教えてくださりありがとうございます。そうなんですね!忘れないように、メモを取りました。覚えておきます。答えてくださり、ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問