gpt4 book ai didi

Java计算器-循环遍历字符串数组中的字符

转载 作者:行者123 更新时间:2023-12-01 13:39:35 25 4
gpt4 key购买 nike

我是一名编程初学者,正在用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com