###前提・実現したいこと
現在Javaでデータフォーマットの勉強をしています。
CSVファイルから郵便番号を読み込んで、一致する住所を表示するプログラムを書いたのですが、もっとこうすれば分かりやすいなど改善点があれば教えていただきたいです。
###該当のソースコード
Java
1 2import java.io.FileNotFoundException; 3import java.io.IOException; 4import java.nio.charset.Charset; 5import java.nio.file.Files; 6import java.nio.file.Paths; 7import java.util.HashMap; 8import java.util.List; 9import java.util.Scanner; 10 11public class CsvPractice { 12 13 static HashMap<Integer, String> zipCodeDataMap = new HashMap<>(); 14 15 public static void main(String[] args) { 16 CsvPractice cp = new CsvPractice(); 17 cp.readCSV(); 18 19 while (true) { 20 System.out.print("郵便番号:"); 21 Scanner scanner = new Scanner(System.in); 22 23 try { 24 String postalCodeStr = scanner.next(); 25 26 if (postalCodeStr.equals("exit")) { 27 System.out.println("終了します"); 28 return; 29 } 30 31 Integer postalCode = Integer.valueOf(postalCodeStr); 32 String Address = zipCodeDataMap.get(postalCode); 33 if (Address != null) { 34 System.out.println("郵便番号 : " + postalCode); 35 System.out.println("住所 : " + Address); 36 } else { 37 System.out.println("郵便番号に対応する住所はありません"); 38 } 39 40 } catch (NumberFormatException e) { 41 System.out.println("郵便番号を入力してください"); 42 continue; 43 } 44 45 } 46 } 47 48 /** 49 * csvファイルからの読み込み 50 * 51 */ 52 53 void readCSV() { 54 55 try { 56 List<String> readLineList = Files.readAllLines(Paths.get("data/40FUKUOK.CSV"), Charset.forName("SJIS")); 57 for (String readLine : readLineList) { 58 String[] values = readLine.split(","); 59 if (values == null || values.length != 15) { 60 System.out.println("エラー"); 61 continue; 62 } 63 Integer PostalCode = Integer.valueOf(values[2].replaceAll("\"", "")); 64 String Address = values[6].replaceAll("\"", "") + values[7].replaceAll("\"", "") 65 + values[8].replaceAll("\"", ""); 66 zipCodeDataMap.put(PostalCode, Address); 67 } 68 69 } catch (FileNotFoundException e) { 70 e.printStackTrace(); 71 } catch (IOException e) { 72 e.printStackTrace(); 73 } 74 75 } 76}
###補足情報(言語/FW/ツール等のバージョンなど)
Java eclipse
回答5件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/06/12 10:50
退会済みユーザー
2017/06/14 13:28