我正在解決一個方程,但我想用常數來編程我的解決方案。我如何將這個表達式與正則表達式分開?
我正在處理的方法稱爲分解,將方程分解爲常量。問題是,當我分裂時,具有負常數的方程將產生具有常數絕對值的數組。如何在仍使用正則表達式的情況下實現減號?
如果輸入是ax+by=c
,則輸出應爲{a,b,c}
。
有幫助的獎金:有沒有辦法刪除我分割時創建的空白元素。例如,如果I型方程2x+3y=6
,我結束了包含該元素{2,,3,,6}
一個「原始」陣列
代碼:
public static int[] decompose(String s)
{
s = s.replaceAll(" ", "");
String[] termRaw = s.split("\\D"); //Splits the equation into constants *and* empty spaces.
ArrayList<Integer> constants = new ArrayList<Integer>(); //Values are placed into here if they are integers.
for(int k = 0 ; k < termRaw.length ; k++)
{
if(!(termRaw[k].equals("")))
{
constants.add(Integer.parseInt(termRaw[k]));
}
}
int[] ans = new int[constants.size()];
for(int k = 0 ; k < constants.size(); k++) //ArrayList to int[]
{
ans[k] = constants.get(k);
}
return ans;
}
給定輸入'2x + 3y = 6',您的輸出是什麼? –
具有值「{2,3,6}」的整數數組。一般來說「{a,b,c}」。 –
如果輸入是'x + y = 5'會怎麼樣? – anubhava