2016-09-25 8 views
-1

私は表現を取り、それを解決するプログラムを書くことを試みています。例えば、私が5 * 5 + 2/2-8 * 5 * 5 - 2を与えられたならば、ArrayListsを使って41の答えに来るべきです。これを行うには、与えられた操作をintに変換する必要があります。与えられた文字列または整数全体を操作に変換する方法はありますか?私はInteger.parseInt(givenString)を使ってみましたが、 "+"、 " - "、 "*"、 "/"記号のためにエラーが発生します。私はあなたに開始を与えることをしようとするつもりだだけ、と解決法

try { 
      System.out.println(new ScriptEngineManager().getEngineByName("js").eval("5 * 5 + 2/2 - 8 + 5 * 5 - 2")); 
     } catch (ScriptException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
+0

'System.out.println(新しいScriptEngineManager().getEngineByName(" js ").eval(" 5 * 5 + 2/2-8 + 5 * 5-2 ")); –

答えて

0

の同じエラーを取得します私はあなたの宿題をやっているのを避けたいからです。

入力文字列を一度に1文字ずつ調べ、それぞれの文字が数字(または数字の一部)か操作(+-*/)かどうかを判断します。あなたが問題を解決する必要があるとして、リストを操作し、そこから

["5", "*", "5", "+", "2", "/", "2", "-", "8", "+", "5", "*", "5", "-", "2"]

:あなたはあなたの問題のために形成するために目指すべきリストは、次のようになります。

+0

これは敗北だと思いますOPの任務の目的。 –

0

を試してみてください。また、私は次のように

を試してみましたが、私は理由兆候

Scanner kb = new Scanner(System.in); 

    int k=0; 

    while (k!=-1) 
    { 
    System.out.println ("Please enter an operation to solve or enter -1 to stop"); 
    k= kb.nextInt(); 
    System.out.println(k); 
    k=0; 

    } 
関連する問題