我在一種方法中遇到了麻煩。在輸入中我們有字符串,例如(a + -b * i)某個符號(c + -d * i)。程序必須計算並輸出結果。我需要在第一個括號中的索引和第二個括號中的索引。而且我的計劃將會起作用。但是,僅在輸入(a-b * i) - (c-d * i)或(a-b * i)*(c-d * i)時,返回錯誤結果-1的方法。在某些測試中錯誤輸出
我的方法爲兩個括號。
public int getSign1(String str)
{
int sign1;
if(str.indexOf("+") < str.indexOf(")"))
sign1 = str.indexOf("+");
else if(str.indexOf("-", 2) < str.indexOf(")"))
sign1 = str.indexOf("-", 2);
else sign1 = -1;
return sign1;
}
public int getSign2(String str)
{
int sign2;
if(str.lastIndexOf("+") > str.lastIndexOf("("))
sign2 = str.lastIndexOf("+");
else if(str.lastIndexOf("-") > str.lastIndexOf("("))
sign2 = str.lastIndexOf("-");
else sign2 = -1;
return sign2;
}
第二種方法總是有效,但不是第一種方法(請幫我查找錯誤)。
實施例:(1-2i)*(3-4i)
第一種方法是返回-1,但不是2.爲什麼?
非常感謝。我忘了它 – rustock