【发布时间】:2016-09-26 03:42:01
【问题描述】:
我正在尝试将作为字符串给出的表达式转换为整数。例如。如果给定“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));
}
}
由于我无法导入任何库,我的行动计划是每次操作完成时都替换字符串。
我打算使用相同的循环进行加减除法
【问题讨论】:
-
我很确定你今天早些时候发布了一个完全相同的副本......请不要重新发布完全相同的问题,它不鼓励并且非常不受欢迎。
-
你是如何运行它的?
-
请对表达式解析做一些研究。基本上,您需要从左到右遍历字符串,寻找表达式中的数字和运算符lexemes,并在它们出现时使用它们。当您最终以错误的顺序进行操作时,搜索运算符并试图找到它们旁边的数字很可能会导致悲伤。
标签: java arrays string arraylist integer