public static void main(String args[])
{
LinkedHashMap<String,Integer> map = new LinkedHashMap<String,Integer>();
Scanner scan = new Scanner(System.in);
while(scan.hasNextLine())
{
String line = scan.nextLine();
String[] tokens = line.split(" ");
if(!Character.isDigit(tokens[0].charAt(0)) && !line.equals("clear") && !line.equals("var"))
{
int value = 0;
for(int i=0; i<tokens.length; i++)
{
if(tokens[i].charAt(0) == '+')
{
addition(tokens, value);
break;
}
else if(i==tokens.length-1)
{
System.out.println("No operation");
break;
}
}
map.put(tokens[0], value);
System.out.println(map);
}
if(line.equals("clear"))
{
clear(map);
}
if(line.equals("var"))
{
variableList(map);
}
}
}
public static int addition(String[] a, int b)
{
for(int j=0; j<a.length; j++)
{
if(Character.isDigit(a[j].charAt(0)))
{
int add = Integer.parseInt(a[j]);
b = b + add;
}
}
return b;
}
我在主要方法中使用了所有這些,但我想分離它以使其更清潔。我一定犯了錯誤,因爲現在加法方法甚至不能正常工作。例如,A = 5 + 6應該打印地圖{A = 11}我的方法有什麼問題?添加不起作用,總是打印0
你的方法做什麼?它會返回什麼嗎? Java是通過價值傳遞的。 –
它應該將一條線分成標記,掃描標記以查找標記(+, - ,/,*),然後根據標記對數字進行操作。 a = 5 + 6將被分成5個令牌,當它找到+時,它運行加法方法。添加方法應該返回值b。 – user2770254
你對返回值做了什麼? –