前提・実現したいこと
新規作成をすると、そこでプログラムが終了してしまいます。
お力添え頂ければ幸いです。
該当のソースコード
package kadai18; import java.util.Arrays; import java.util.HashMap; import java.util.Map; import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class K06 { public static void main(String[] args) { /** * 社員番号と名前をMapに格納し、表示します。 */ // TODO 自動生成されたメソッド・スタブ Pattern p = Pattern.compile("-?\d+"); Map<String, Member> memberMap = new HashMap<String, Member>(); Scanner sc = new Scanner(System.in); System.out.println("モード選択" + "\n" + "新規追加 -i" + "\n" + "変更 -u" + "\n" + "削除 -d" + "\n" + "一覧表示 -v" + "\n" + "ソート -s" + "\n" + "プログラム終了 -e"); String s = sc.next(); if (s.equals("-i")) { s = ""; sc = new Scanner(System.in); s = sc.next(); String[] splitMap = s.split(","); Matcher matcher = p.matcher(splitMap[0]); if(matcher.find()) { if (memberMap.containsKey(splitMap[0])) { s = ""; System.out.println(splitMap[0] + "はすでに入力されています"); s = sc.next(); if (s.equals("-m")) { s = ""; System.out.println("モード選択" + "\n" + "新規追加 -i" + "\n" + "変更 -u" + "\n" + "削除 -d" + "\n" + "一覧表示 -v" + "\n" + "ソート -s" + "\n" + "プログラム終了 -e"); s = sc.next(); }else { Member m = new Member(splitMap[1], splitMap[2]); memberMap.put(splitMap[0], m); s = ""; sc = new Scanner(System.in); s = sc.next(); if (s.equals("-m")) { s = ""; System.out.println("モード選択" + "\n" + "新規追加 -i" + "\n" + "変更 -u" + "\n" + "削除 -d" + "\n" + "一覧表示 -v" + "\n" + "ソート -s" + "\n" + "プログラム終了 -e"); s = sc.next(); } } } } } if (s.equals("-u")) { System.out.println("社員番号を入力して下さい。"); s = ""; s = sc.next(); if (memberMap.containsKey(s)) { System.out.println("変更後の名前と部署名を「名前,部署名」で入力して下さい。"); s = ""; s = sc.next(); String[] alteredMap = s.split(","); Member m1 = new Member(alteredMap[0], alteredMap[1]); memberMap.put(s, m1 ); }else { System.out.println("該当するデータはありません。"); s = ""; sc = new Scanner(System.in); s = sc.next(); if (s.equals("-m")) { s = ""; System.out.println("モード選択" + "\n" + "新規追加 -i" + "\n" + "変更 -u" + "\n" + "削除 -d" + "\n" + "一覧表示 -v" + "\n" + "ソート -s" + "\n" + "プログラム終了 -e"); s = sc.next(); } } } if (s.equals("-d")) { System.out.println("社員番号を入力して下さい。"); s = ""; s = sc.next(); if (memberMap.containsKey(s)) { System.out.println("社員番号:" + s + " " + memberMap.get("s1").toString()); System.out.println("このデータを削除する場合は「y」、削除しない場合は「n」を入力して下さい。"); s = ""; s = sc.next(); if(s.equals("y")) { memberMap.remove("s1"); }else if(s.equals("n")) { s =""; s = sc.next(); } } } if (s.equals("-v")) { s = ""; for (Map.Entry<String, Member> entry : memberMap.entrySet()) { System.out.println("社員番号:" + entry.getKey() + " " + entry.getValue().toString()); } System.out.println("表示完了"); s = sc.next(); } if (s.equals("-m")) { s = ""; System.out.println("モード選択" + "\n" + "新規追加 -i" + "\n" + "変更 -u" + "\n" + "削除 -d" + "\n" + "一覧表示 -v" + "\n" + "ソート -s" + "\n" + "プログラム終了 -e"); s = sc.next(); } if (s.equals("-s")) { Object[] mapkey = memberMap.keySet().toArray(); Arrays.sort(mapkey); } if (s.equals("-e")) { System.exit(0); } } }
package kadai18;
public class Member {
/**
* 名前、部署を設定します。
* @param name 名前
* @param department 部署
*/
private String name;
private String department;
public Member(String name, String department) { this.name = name; this.department = department; } public String getName() { return name; } public String getDepartment() { return department; } public void setName(String name) { this.name = name; } public void setDepartment(String department) { this.department = department; } public String toString() { return "名前:" + this.getName() + " " + "部署:" + this.getDepartment(); }
}
回答1件
あなたの回答
tips
プレビュー