我想將作爲字符串給出的表達式轉換爲整數。例如。如果給出「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