やっていること
登録商品の登録・編集・消去などができるコンソールアプリをつくっています。
今回質問させていただくのは編集部分となります。
Main.javaにて、変更したい登録商品名・変更後の名前を聞いて、Editクラスにて編集を行います。
聞きたいこと・困っていること
編集したい商品を打ち込む際に、該当するものがない場合result == ""で"編集する商品が見つかりませんでした”と表示されるようになっています。
しかし、「編集する商品が見つかりませんでした」が表示されるのが
すべての入力項目(編集したい登録名・新しい登録名・新しい価格などMainで聞いてることすべて)の入力終わった後に「編集する商品が見つかりませんでした」と表示される現状です。
これを、編集したい登録商品名を入力して、合致するものがないとわかった場合、新しい商品名などつぎの項目入力にすすむことなくすぐに「編集する商品が見つかりませんでした」と出したいです。どのように変更すればよいのでしょうか?
【現在】
編集したい登録商品名の文字列を入力してください
hh(登録されてない文字列を入力)
新しい商品名を入力してくださいとすべての入力項目終了後
編集する商品が見つかりませんでした
【このように変更したい】
編集したい登録商品名の文字列を入力してください
hh(登録されてない文字列を入力)
編集する商品が見つかりませんでした
**Main.java** if(sentaku ==3) { Scanner editword = new java.util.Scanner(System.in); String editname; do { System.out.println("編集したい登録商品名の文字列を入力してください"); editname = editword.nextLine(); }while(editname.isEmpty()); String changename; do { System.out.println("新しい商品名を入力してください"); changename = editword.nextLine(); }while(changename.isEmpty()); int changemoney; while(true) { try { System.out.println("新しい値段を入力してください"); changemoney = editword.nextInt(); break; }catch(InputMismatchException e) { System.out.println("文字列が入力されました。"); editword.next(); } } String changekari; do { System.out.println("仮の場合は1を本登録の場合は2を入力してください。"); changekari = editword.next(); if(changekari.equals("1")) { changekari="仮商品"; }else { changekari="本登録商品"; } }while(changekari.isEmpty()); Edit.Changeproduct(editname,changename,changemoney,changekari,list);
public class Edit { public static void Changeproduct(String editname,String changename,int changemoney,String changekari,ArrayList<HandMadeGoods> list) { String result = ""; File file; PrintWriter pw = null; for(int i=0; i<list.size(); i++) { if(editname.equals(list.get(i).getName())) { list.get(i).setName(changename); list.get(i).setMoney(changemoney); list.get(i).setKari(changekari); result +="商品名:"+list.get(i).getName()+"価格:"+list.get(i).getMoney()+"仮番号:"+list.get(i).getKari()+"で編集完了しました。"; try{ file = new File("src\HandMadeData.txt"); pw = new PrintWriter( new BufferedWriter(new FileWriter(file)) ); for(int y=0; y<list.size(); y++) { pw.println("商品名:"+list.get(y).getName()+"/"+list.get(y).getMoney()+"円/"+list.get(y).getKari()); } }catch(IOException e){ System.out.println("該当ファイルがありません。"); }catch(NullPointerException e){ System.out.println("nullです。"); }finally { pw.close(); } } } if(result == "") { result = "編集する商品がみつかりませんでした"; } System.out.println(result); } }
**追記 checkcheck** public static boolean checkcheck(String editname,ArrayList<HandMadeGoods> list,boolean checkgo) { for(int t=0; t<list.size(); t++) { if(!(editname.equals(list.get(t).getName()))){ System.out.println("編集したい商品に合致するものはありません"); checkgo=false; } } return checkgo; } **追記 main** Scanner editword = new java.util.Scanner(System.in); String editname; boolean checkgo=true; do { System.out.println("編集したい登録商品名の文字列を入力してください"); editname = editword.nextLine(); }while(editname.isEmpty()); Edit.checkcheck(editname,list,checkgo);
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/08 06:15 編集
2020/05/08 06:28
2020/05/08 10:06
2020/05/08 11:56
2020/05/08 12:54
2020/05/08 15:22