簡體   English   中英

檢查兩個表達式字符串是否都包含變量

[英]Checking for Whether Both Expression Strings Contain the Variable

我已經制作了一個功能齊全的方法,可以為等式獲取像xvar這樣的變量字符串:

// Equation Variable Getter
    public String getVar(){
        String variable = "";
        for (int i = 0; i < getEquation().length(); i++){
            if ((getEquation().charAt(i) >= 65 && getEquation().charAt(i) <= 90)
            || (getEquation().charAt(i) >= 97 && getEquation().charAt(i) <= 122)){
                variable += getEquation().charAt(i);
            }
        }
        //System.out.println(variable);
        return variable;
    }

在嘗試求解類似x = xnum = num的方程式時,我將邊拆分為一個數組並像我測試過的任何其他方程式一樣修剪空格。 問題在於比較這兩個方面。 當然,我使用了 if 語句並像這樣比較它們:

if (sides[0].contains(getVar()) && sides[1].contains(getVar()){
   // statements used to solve equation format co*var = co*var
}

x = xvar = var上使用它時,if 語句從未運行。 經過進一步調查,我發現代碼確實繞過了它,因為語句中的兩個條件都是錯誤的。 這是不應該發生的,因為對於像x = xvar = var這樣的字符串,它們都包含變量x

if語句有問題嗎?

首先,我需要感謝幫助找到解決這個問題的人。 顯然,事實上,getVar() 方法從具有多個變量實例的等式字符串中獲取雙變量存在一個問題。

我為解決該問題所做的工作是重載 getVar() 方法以接收和使用字符串參數,這樣我就可以僅從等式的一側獲取變量。

包含 if 語句的 solve() 方法用於求解兩邊都有1 個或多個變量的方程式。 因此,在只有一側包含變量的情況下,仍然會使用兩個 getVar() 方法來避免IndexOutOfBoundsException

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM