package file; import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.util.HashMap; import java.util.Scanner; //繰り返し入力できるアプリ public class KurikaeshiKensaku { public static void main(String[] args) { // レコードを投入するmap HashMap map = new HashMap(); try { // ファイル読み込みための基本クラス(必須) FileReader freader = new FileReader("sibuyaku.csv"); BufferedReader breader = new BufferedReader(freader); // 1行づつ行単位で読み込むため、効率が良い String line; // 文末に来ると、readLine()はnullを返す // line="151-0064 東京都渋谷区上原"; while ((line = breader.readLine()) != null) { // 分割し配列dataにする String[] data = line.split("\t"); // mapにデータをペアで追加 map.put(data[0],data[1]); }//while // ファイルを閉じる breader.close();// 外側のオブジェクトを閉じると内側も自動で閉じられる } catch (FileNotFoundException e) { System.out.println(e); } catch (IOException e) { System.out.println(e); }//以上が、検索対象データをmapに詰め込む作業 //コンソール入力準備 Scanner scan = new Scanner(System.in); //無限ループ(繰り返し) while (true) { System.out.print("郵便番号を入力して下さい(xを入力すると終了します):"); String yubinBangou = scan.next(); if(yubinBangou.equals("x")){ System.out.println("\nアプリケーションを終了しました。"); break;//繰り返しブロックを抜ける } //map内検索 String address = map.get(yubinBangou); //該当ありの場合 if(address != null){ //住所を表示 System.out.println("住所: " + address); }else{ System.out.println("住所:該当がありません。"); }//else }//while }// main() }// class