Tag: postfix notation

需要更改正则表达式以获得额外的后缀标准

所以我有这个代码: Pattern pattern = Pattern.compile(“\\d*(\\s\\d+\\.)*\\s*[-\\+\\*/\\$£]”); String input = “4.0 5.0 2.0 / + 7.0 – 11.0 34.0 2.0 / 3.0 / 1.0 * +”; Matcher matcher = pattern.matcher(input); List output = new ArrayList(); while (matcher.find()) { output.add(matcher.group()); } 当我正在解析整数时,正则表达式当然没问题,但我现在需要它考虑到可以有一个。 代表一个浮点。 想知道是否有人可以帮我添加这个 预期产量应为: 4.0 5.0 2.0 / + 7.0 – 11.0 34.0 2.0 / 3.0 / […]

使用最少括号括号后缀到中缀

我正在寻找中缀符号的算法后缀,它将产生最小数量的括号。 我发现它会产生很多很多括号: http : //tajendrasengar.blogspot.com/2011/09/postfix-to-infix-algorithm.html 例如 输入: abcd*/+~ 结果: ~(a+b/(c*d))

后缀计算器Java

好的,我必须从文件中读取后缀表达式。 后缀表达式必须有空格来分隔每个运算符或操作数。 到目前为止,只有在输入文件中的运算符或操作数之间没有空格时,我才能使用。 (即如果文件有12+,我得到的结果是3.)为了做到这一点,我认为我需要对输入进行标记化,但我不确定如何。 这就是我到目前为止所拥有的。 感谢您的回复。 import java.util.*; import java.io.*; public class PostfixCalc{ public static void main (String [] args) throws Exception { File file = new File(“in.txt”); Scanner sc = new Scanner(file); String input = sc.next(); Stack calc = new Stack(); while(sc.hasNext()){ for(int i = 0; i < input.length(); i++){ char c = input.charAt(i); […]

在将中缀表达式转换为后缀表达式时处理括号

我正在开发一个Java项目,需要我将中缀表达式转换为后缀表达式。 我目前能够使用此方法将中缀表达式转换为postfix,只要它们不包含括号,但我无法弄清楚如何处理括号。 基本上,我有两个堆栈,其中包含称为“令牌”的对象。 令牌是一个包装类,它包含一个字符串,它是一个数字,变量(被评估为数字,等待用户输入),运算符(运算符具有与之关联的优先级,以便我的方法可以确定如何处理’+’,’ – ‘,’*’和’/’之间的操作顺序,或括号(括号有一种方法可以确定它是一个左括号还是一个闭括号)。 我该如何处理括号? 多层括号怎么样? public String toPostFix() { StringBuilder postfixstr = new StringBuilder(); Stack in_fix = new Stack(); Stack post_fix = new Stack(); for (int i = tokens.length – 1; i >= 0; i–) { t = new Token(tokens[i]); in_fix.push(t); } //there are still tokens to process while (!in_fix.empty()) { //is […]