多项式项的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"
但是实现所有这些功能并使其相互作用会让我感到非常头痛,例如,如果我有{
# 1 楼答案
这里的秩序很重要。如果你想清楚了,你会发现
coefficient = 0
应该是第一位的,因为当它为零时,其他什么都不重要。接下来是当exponent
等于1
或0
时的特殊情况。当coefficient
是-1
时,就有了。然后剩下的就是一个负的coefficient
而不是-1
或者一个正的coefficient
的默认情况。因此,if语句应该如下所示:# 2 楼答案
您可以将第一个特殊情况与最后一个特殊情况合并。您还可以通过查看系数的
abs
值来组合第二种和第三种情况# 3 楼答案
我想,你不知道世博会不会是负面的。尝试以下方法:
EDIT:要使用
StringBuilder
,请按如下所示更改最后一条语句(不过我看不到有什么好处)# 4 楼答案
嗯,你真的没有什么办法让它变得更容易。您基本上有以下情况:
系数=0-->;显示0(指数无关)
系数=+/-1-->;显示-if-1(特例(-1,0)),否则不显示任何内容
其他系数-->;显示为存储状态
指数=0-->;不显示任何内容
否则,请显示x^指数
所以
我想这就够了吧?我并没有通过单元测试来真正确定
# 5 楼答案
这是我想说的最接近的了
还有一个fiddle