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

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

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

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

Q&A

解決済

2回答

1047閲覧

scanner.nextLine()で入力文字の制限

yudai_uno

総合スコア3

Java

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

0グッド

0クリップ

投稿2023/06/04 04:32

編集2023/06/04 04:34

実現したいこと

javaにおいて
scanner.nextLine()で"a"か"b"しか入力できないようにしたいです。

"a"か"b"以外の文字列が入力された際は”間違えています”等のエラー文を表示させたいです。

前提

scanner.nextLine()で入力文字の制限をかけたいと思い、調べましたが分かりませんでした。

発生している問題・エラーメッセージ

記述方法が分かりません。

該当のソースコード

試したこと

Googleで調べました。

補足情報(FW/ツールのバージョンなど)

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

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

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

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

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

hoshi-takanori

2023/06/04 04:38

scanner.nextLine() で入力文字の制限をかけることは不可能なので、"a" か "b" 以外の場合はエラーメッセージを表示して scanner.nextLine() をやり直すことになるかと。
yudai_uno

2023/06/04 04:44

不可能なのですね!ありがとうございます。 エラーメッセージの表示をさせたいのですが、nextLien()にthrowsで例外のメッセージを記入するということでしょうか? そうなりますと、どこにnextLien()は存在しているのでしょうか?探しても見当たらない状況です。
m.ts10806

2023/06/04 05:29 編集

nextLien()はないです。 nextLine()ならあります。 https://docs.oracle.com/javase/jp/8/docs/api/java/util/Scanner.html#nextLine-- そもそも全く一行も書けないのでしょうか。 nextLine()の役割を調べればそこからどうすれば良いかは自ずと出てきそうに思いますし、 「"a"か"b"以外の文字列が入力された際は”間違えています”等のエラー文を表示させる」 と要件も明確になってて、文章そのままコードに起こせそうに思いますが。 1.入力を受け取る 2.1.で受け取った入力内容がaでない、もしくはbでないかチェック 3.2.がtrueならエラー、falseならOK
guest

回答2

0

ベストアンサー

こんなんでいい?

Java

1import java.util.Scanner; 2 3public class foo { 4 public static void main(String[] args) { 5 String input; 6 Scanner sc = new Scanner(System.in); 7 while ( true ) { 8 System.out.print("enter a or b :"); 9 input = sc.nextLine(); 10 // a または b だったらloop脱出 11 if ( input.equals("a") || input.equals("b") ) break; 12 } 13 System.out.printf("[%s]\n", input); 14 } 15}

投稿2023/06/05 03:25

episteme

総合スコア16614

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

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

yudai_uno

2023/06/05 09:55

ありがとうございました!
guest

0

入力後、入力文字列をチェックして、ダメな時はメッセージを出して入力をやり直せばいいのでは

投稿2023/06/04 06:47

y_waiwai

総合スコア87840

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.44%

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

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

質問する

関連した質問