作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是一名编程初学者,正在用 java 创建一个计算器,但在循环遍历 list2 数组中的字符,然后转换为字符数据类型以通过 getToken 方法运行时遇到问题。有人可以帮我吗?
这是 getToken 方法...
public Precedence getToken(char symbol)
{
switch (symbol)
{
case '(' : return Precedence.lparen;
case ')' : return Precedence.rparen;
case '+' : return Precedence.plus;
case '-' : return Precedence.minus;
case '/' : return Precedence.divide;
case '*' : return Precedence.times;
case '%' : return Precedence.mod;
case ' ' : return Precedence.eos;
default : return Precedence.operand;
}
}
这是后缀函数
/** Function to convert infix to postfix **/
public String postfix(String infix)
{
String postfix = "";
top = 0;
String s = infix.replaceAll("\\s+", "");
//int p = infix.length();
stack = new Precedence[infix.length()];
stack[0] = Precedence.eos;
String [] str = infix.split(" ");
List<String> list2 = Arrays.asList(str);
Precedence token;
if (s.matches("[-+/*0-9]+[-+/*0-9]"))
{
System.out.println("true");
}
else
{
System.err.println("Invalid expression!");
}
for (int i = 0; i < list2.size(); i++)
{
if (list2.get(i).matches("\\p{Punct}"))
{
token = getToken(list2.get(i));
}
}
最佳答案
您的方法采用 char
参数
public Precedence getToken(char symbol)
您正在尝试将字符串传递给它
List<String> list2 = Arrays.asList(str);
...
token = getToken(list2.get(i));
<小时/>
编辑 正如@ahanin 向我指出的那样,列表是一个完整的操作。在这种情况下,他的评论是正确的,您需要使用 .charAt(0)
token = getToken(list2.get(i).charAt(0));
关于Java计算器-循环遍历字符串数组中的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20937240/
我是一名优秀的程序员,十分优秀!