前提
コマンドプロンプトで入力された値の掛け算をして出力するシステムを作成しております。
入力値は2つ以上の値が入ることを想定してListに格納して計算させたいと考えております。
そこでエラーが発生してしまったので解消方法についてご教示いただけますと幸いです。
実現したいこと
×の計算を行い、結果を右側に送りたい。
発生している問題・エラーメッセージ
The left-hand side of an assignment must be a variable
該当のソースコード
Demo.java
1import java.util.ArrayList; 2import java.util.List; 3import java.util.Scanner; 4import java.util.StringTokenizer; 5 6class Demo { 7 public static void main(String[] args) { 8 9 System.out.println("入力:"); 10 // 文字入力の受付 11 Scanner scanner = new Scanner(System.in); 12 scanner.useDelimiter(",|\n"); 13 String line; 14 String token = ""; 15 int i = 0; 16 List<String> StrList = new ArrayList<String>(); 17 List<Double> intList = new ArrayList<Double>(); 18 line = scanner.next().strip(); 19 20 StringTokenizer st = new StringTokenizer(line, "+-*/=", true); 21 while (st.hasMoreTokens()) { 22 token = st.nextToken(); 23 if ("+-/*=".contains(token)) { 24 StrList.add(token); 25 } else { 26 intList.add(Double.valueOf(token)); 27 } 28 } 29 30 i = 0; 31 while (!(StrList.get(i).equals("="))) { 32 if (StrList.get(i).equals("*")) { 33 Double.valueOf(intList.get(i)) = Double.valueOf(intList.get(i)) * Double.valueOf(intList.get(i + 1)); 34 } 35 i++; 36 } 37 System.out.println(line + intList.get(i)); 38 } 39}
試したこと
変数numを宣言して、numに ×の計算結果を代入しましたが、想定結果と異なるため断念しました。
例
入力:
2×3×2=
出力:
2×3×2=6.0
※期待結果は2×3×2=12.0
Demo.java
1import java.util.ArrayList; 2import java.util.List; 3import java.util.Scanner; 4import java.util.StringTokenizer; 5 6class Demo { 7 8 public static void main(String[] args) { 9 System.out.println("入力:"); 10 // 文字入力の受付 11 Scanner scanner = new Scanner(System.in); 12 scanner.useDelimiter(",|\n"); 13 String line; 14 double num = 0.0; 15 String token = ""; 16 int i = 0; 17 List<String> StrList = new ArrayList<String>(); 18 List<Double> intList = new ArrayList<Double>(); 19 line = scanner.next().strip(); 20 21 StringTokenizer st = new StringTokenizer(line, "+-*/=", true); 22 while (st.hasMoreTokens()) { 23 token = st.nextToken(); 24 if ("+-/*=".contains(token)) { 25 StrList.add(token); 26 } else { 27 intList.add(Double.valueOf(token)); 28 } 29 } 30 31 i = 0; 32 while (!(StrList.get(i).equals("="))) { 33 if (StrList.get(i).equals("*")) { 34 num = 35 Double.valueOf(intList.get(i)) * Double.valueOf(intList.get(i + 1)); 36 } 37 i++; 38 } 39 System.out.println(line + num); 40 } 41} 42
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
「右側」とは何でしょう。