我必須爲二次類編寫一個讀取方法,其中二進制以ax^2 + bx + c的形式輸入。該類的描述是這樣的:二次讀取方法
添加讀取方法,要求用戶輸入標準格式的公式並正確設置三個實例變量。 (因此,如果用戶鍵入3x^2 - x,則將實例變量設置爲3,-1和0)。這將需要您之前完成的字符串處理。顯示按原樣輸入的實際方程式,並將其正確標記爲預期輸出。
我能夠通過使用字符串操作和if語句來完成ax^2部分。但是我不知道如何做bx和c部分的等式,因爲這個符號可能在bx和c之前。這是我如何完成方法的ax^2部分。
public void read()
{
Scanner keyboard = new Scanner(System.in);
System.out.println("Please enter a quadratic equation in standard format.");
String formula = keyboard.next();
String a = formula.substring(0, formula.indexOf("x^2"));
int a2 = Integer.parseInt(a);
if (a2 == 0)
{
System.out.println("a = 0");
}
else if (a2 == 1)
{
System.out.println("a = 1");
}
else
{
System.out.println("a = " + a2);
}
}
隨意編寫任何代碼作爲例子。 任何幫助將不勝感激。
如果您的二次方程是-2x^2 + 3x-1,或-2x^2或-x^2 + 3,該怎麼辦?你會如何考慮處理這些案件? – Makoto 2013-02-28 06:18:32
這就是if else語句的要點,我的程序可以用於前2個方程式,但我只是做了一些進一步的測試,並且它不適用於最後的-x^2 + 3方程式,所以我有更多的編碼可以做對於這一部分我猜。 – user007 2013-02-28 06:36:57
我的觀點更傾向於邊緣案例。你必須非常謹慎,並對其進行解釋。最終,您對由運算符分隔的字符串的每個部分執行相同的消耗操作。這是一個暗示。另一個提示是,如果您訪問[此Debuggex鏈接](http://www.debuggex.com/?re=%28%28%28-%7C%2B%29%3F%29%28%5Cd%2Bx% 3F%7C%28x%7B1%7D%5C%5E%5Cd%2B%29%29%29%2B%&%= 5E4-3x%5E2%2B17),你會看到你想要做的一般流程(在正則表達式中)。 – Makoto 2013-02-28 06:57:11