我想将作为字符串给出的表达式转换为整数。例如。如果给出“1 + 5 * 5”,该方法应返回“26”。我开始只为解决乘法写代码,但是,当我运行它没有一个输出字符串到整数表达式
public static void operationS(ArrayList<String> m)
{
for (int i=0; i<m.size(); i++)
{
while ((m.get(i)).contains("*"))
{
int x = ((m.get(i)).indexOf("*"));
char A=((m.get(i)).charAt(x-1));
char B= ((m.get(i)).charAt(x+1));
int r= Character.getNumericValue(A)*Character.getNumericValue(B);
String numberAsString = Integer.toString(r);
if(x==1 && (m.get(i)).length()==3)
{
m.set(i, numberAsString);
}
if(x==1 && (m.get(i)).length()>3)
{
String n = numberAsString+((m.get(i)).substring(x+2));
m.set(i, n);
}
else
{
String k= ((m.get(i)).substring(0,x-1))+numberAsString+((m.get(i)).substring(x+2));
}
}
}
for (int u=0;u<m.size();u++)
{
System.out.println (m.get(u));
}
}
因为我无法导入任何图书馆,我的行动计划是每完成一个工作时间替换字符串。
我打算使用相同的循环进行增加,减少和除法
我敢肯定你今天早些时候发布了一个确切的重复......请不要转贴完全相同的问题,它气馁,非常皱眉。 – Li357
你好吗? – immibis
请对表达式解析做一些研究。基本上,您需要从左到右浏览字符串,查找表达式中的数字和运算符_lexemes_,并在他们出现时与他们一起工作。寻找操作员并试图找到旁边的数字很可能会导致悲伤,当你最终以错误的顺序进行操作时。 – ajb