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

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

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

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

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Q&A

1回答

884閲覧

HashMapを使い、endと入力するまで郵便番号から住所を表示するプログラミングを作りたいです。

AllenIrving

総合スコア0

Java

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

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

0グッド

0クリップ

投稿2021/10/25 16:38

前提・実現したいこと

大学でプログラミングを勉強中です。
郵便番号を入力して住所を表示しつつづけるプログラムを書きたいのですが、うまく動作させる方法が分かりません。

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

2度入力処理を行ったのち、何も表示しないで終了する。

該当のソースコード

Java

1import java.io.File; 2import java.io.FileNotFoundException; 3import java.util.HashMap; 4import java.util.Scanner; 5public class PostalCode { 6 7 public static void main(String[] args) { 8 File fr = new File("postalcode.csv"); 9 try (Scanner fin = new Scanner(fr)) { 10 HashMap<String,String> hash = new HashMap<String,String>(); 11 while(fin.hasNext()) { 12 13 String s = fin.nextLine(); 14 String[] data = s.split(" "); 15 hash.put(data[0],data[1]); 16 } 17 18 Scanner sc = new Scanner(System.in); 19 int a = sc.nextInt(); 20 String s = sc.next(); 21 while (999999<a&&a<1000000) { 22 Scanner sc1 = new Scanner(System.in); 23 int b = sc1.nextInt(); 24 a = b; 25 String s1 = sc1.next(); 26 System.out.println(s1+":"+hash.get(s1)); 27 } 28 } catch (FileNotFoundException e) { 29 System.out.println("ファイルが見つかりません"); 30 } 31 } 32}

試したこと

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

エクリプス

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

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

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

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

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

1T2R3M4

2021/10/25 16:43

>うまく動作させる方法が分かりません AllenIrvingさんにとってのうまい動作とは何でしょうか。
jimbe

2021/10/25 18:47

同じもの(System.in)に対して Scanner オブジェクトを幾つも作らないようにしてください。
jimbe

2021/10/25 18:54

a や s、 b や s1 といった変数は、入力によってどの様な値になり、 while の条件や hash.get でどうなるとお考えでしょうか。 また、それらを確認するために変数の内容を表示したりはされたのでしょうか。
m.ts10806

2021/10/25 21:55

>プログラミングを作りたいです。 細かいところですが「プログラミング」は作る行為なので、「頭痛が痛い」と言ってるような状態になってます。
Crimson_Tide

2021/10/25 23:39

今回想定通り動かない!となったあと何を考えて何をしましたか? 質問だけみると、「作ってみたが動かない、(即)ここで原因を聞いてみよう」のように感じます。
guest

回答1

0

2度入力処理を行ったのち、何も表示しないで終了する。

郵便番号を 1つ入力したら、それに対応する住所を表示するようにしたいんですよね。
なぜ、int a = sc.nextInt(); String s = sc.next();
入力が 2つ必要なコードを書いているんですか?

実際どんな入力をしたんですか?
例えば、郵便番号ということで 7桁の数字 1234567 を 2度入力したとします。
a = 1234567、s = "1234567" となります。
while (999999<a&&a<1000000) {
1234567 は 999999 より大きいけれど、1000000 より小さくはないから
whileループの中には入りません。終了するのは当然です。

投稿2021/10/27 18:44

編集2021/10/28 03:33
kazuma-s

総合スコア8224

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問