java初心者です。
電卓アプリとして四則演算ができるコードを作成しようとしています。
足し算引き算は問題なくできるようになったのですが、掛け算割り算が現在まだできていません。
文字列を1文字ずつ読み取る処理を書いて、リストの中身を足すことで足し算引き算は処理できたのですが、掛け算割り算のときにif文の処理内容をどのように記述するべきなのかがわかりません。
稚拙な文章とコードで申し訳ありませんが、ご教授いただけますと幸いです。よろしくお願い致します。
最終的には、例として
6+2*3が入力された時に12となることが理想です。
以下、コードになります。
/**
*
* @author
* 電卓実行クラス
*/
public class Dentaku2 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); String[] strArray = str.split(""); List<String> numList = new ArrayList<>(); StringBuilder sb = new StringBuilder(); for (String s : strArray) { if (s.matches("[0-9]")) { sb.append(s); } else if (s.equals("*")) { numList.add(sb.toString()); sb.setLength(0); } else if (s.equals("/")) { numList.add(sb.toString()); sb.setLength(0); } else if (s.equals("+")) { numList.add(sb.toString()); sb.setLength(0); } else if (s.equals("-")) { numList.add(sb.toString()); sb.setLength(0); sb.append("-"); } } numList.add(sb.toString()); sb.setLength(0); int sum = 0; int sum2=1; for (String i : numList) { if(i.equals("*")) { sum2 *=Integer.parseInt(i); System.out.println(sum2); }else if(i.equals("+")||(i.equals("-"))){ sum += Integer.parseInt(i); System.out.println(sum); } } }
}
