如何檢查字符串是否是正確的線性函數(數學)?檢查一個字符串是否是正確的線性函數 - java
我使用Jfreechart庫,其中需要一個線性函數來繪製圖形。 Jfree庫中有一個Function2D類,我用它這樣的:
package NALIG;
import org.jfree.data.function.Function2D;
import expr.Expr;
import expr.Parser;
import expr.SyntaxException;
import expr.Variable;
/**
* The function.
*/
public class Fx implements Function2D {
private String formula;
public Fx(String f){
formula = f;
}
/* (non-Javadoc)
* @see org.jfree.data.function.Function2D#getValue(double)
*/
public double getValue(double x) {
Expr expr = null;
try {
expr = Parser.parse(formula);
} catch (SyntaxException e) {
System.err.println("formula error syntaxExeption");
System.err.println(e.explain());
}
Variable vx = Variable.make("x");
vx.setValue(x);
return expr.value();
}
}
但問題是,syntaxExeption不是很正確(數學)工作。 在後續的例子扔無syntaxExeption(這在數學上是不正確的):
f(x)=xd not throw error
f(x)=1+xd not throw error
適當的後續工作:
f(x)=; (or starting with any other symbol or alone symbol: [email protected]#$%^&*()_+;'[]{}|\") throw syntaxExeption
f(x)=x+ (or any other symbol in position of "+" like [email protected]#$%^&*()_+;'[]{}|\") throw syntaxExeption
***用於檢查輸入的字符串AFTER =
* ** SyntaxExeption的源代碼是here
在此先感謝
syntex沒有明確定義。可能你需要的是javacc,它允許你定義自己的語法。 –
@KelvinNg你不幫我對不起... – Universe