2017-10-08 67 views
0

我試圖定義一個類表達式,它可以表示任何數學表達式,正如其名稱所示。它接受一個字符串並使用它的信息將表達式存儲在其字段中。java構造函數中的自動化數字字符串轉換

所以它的構造應該是這樣的:

 public Expression(String expr) 
     { 
      SomeOperation(expr); 
     }    

當我做這個類的一個實例,我希望能夠給它的構造任何類型的變量或其序列,使構造函數將其轉換成一個字符串。 例如,我希望能夠寫:的

Expression e1 = new Expression(aNumber*x + anInt*y) 

代替

Expression e1 = new Expression("" + aNumber+"*x+" + anInt+"*y+") 

其中x和y是聲明或初始化變量,但是符號被轉換成字符串(aNumber和anInt被聲明和初始化。)

所以我的問題是:我可以自動化連接數字和字符串的過程將構造函數轉換爲一個易於使用的構造函數,如上所示?

在此先感謝!

回答

0

你有實際實現它,像:

public class Expression { 
    private final String expr; 
    public Expression(Object... args){ 
     this.expr = Arrays.asList(args).stream().map(Object::toString).collect(Collectors.joining()); 
    } 
    public String getExpr() { 
     return expr; 
    } 
} 

然後:

new Expression(aNumber, "*x + ", anInt, "*y");