Java-多项式术语的toString方法

提问

我没有使用多项式创建了多项式类,而是使用自己的Term(coefficient,exponent)创建多项式表达式.

我有一些条件,如下所示:

coefficient = 0 -> Term(0,2) -> 0x^2 -> "0"
coefficient = 1 -> Term(1,2) -> 1x^2 -> "x^2"
coefficient = -1 -> Term(-1,2) -> -1x^2 -> "-x^2"
exponent = 1 = -> Term(5,1) -> 5x^1 -> "5x"
exponent = 0 = -> Term(5,0) -> 5x^0 -> "5"

但是实现所有这些功能以使其相互之间或周围起作用会令我非常头疼,例如,如果我拥有Term(-1,1),我希望出现“ -x”,而Term(1)出现“ x”, 1).任何人都可以通过某种逻辑将所有这些“规则”组合在一起以组成toString方法吗?

最佳答案

我认为,您不参加世博会不会负面.尝试以下操作:

@Override
public String toString() {
    if(coef ==0){
        return "0";
    }else if(expo ==0){
        return ""+coef;
    }else{
        String pref = coef==1? "": coef==-1?"-":""+coef; 
        String suff = expo>1? "^"+expo:""; 
        return pref+"x"+suff;
    }
}

编辑:要使用StringBuilder,请如下更改最后一条语句(尽管我看不出太多好处)

   return new StringBuilder(pref).append("x").append(suff).toString();
评论