生活随笔
收集整理的這篇文章主要介紹了
逆波兰计算器实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
逆波蘭計算器
思路分析
代碼實現
package com
.atguigu
.stack
;import java
.security
.AlgorithmConstraints
;
import java
.util
.ArrayList
;
import java
.util
.List
;
import java
.util
.Stack
;
public class PolandNotation {public static void main(String
[] args
) {String suffixExpression
="3 4 + 5 * 6 -";List
<String> rpnList
=getListString(suffixExpression
);System
.out
.println(rpnList
);int res
=calculate(rpnList
);System
.out
.println("計算的結果是="+res
);}public static List
<String> getListString(String suffixExpression
){String
[] split
= suffixExpression
.split(" ");List
<String> list
= new ArrayList<>();for(String ele
:split
){list
.add(ele
);}return list
;}
public static int calculate(List
<String> ls
){Stack
<String> stack
= new Stack<>();for(String item
:ls
){if(item
.matches("\\d+")){stack
.push(item
);}else {int num2
=Integer
.parseInt(stack
.pop());int num1
=Integer
.parseInt(stack
.pop());int res
=0;if(item
.equals("+")){res
=num1
+num2
;}else if(item
.equals("-")){res
=num1
-num2
;}else if(item
.equals("*")){res
=num1
*num2
;}else if(item
.equals("/")){res
=num1
/num2
;}else {throw new RuntimeException("運算符有誤");}stack
.push(res
+"");}}return Integer
.parseInt(stack
.pop());}}
總結
以上是生活随笔為你收集整理的逆波兰计算器实现的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。