如何删除system.out.println中的最后一个令牌?

时间:2018-10-25 03:33:30

标签: java output token

我有这段代码,输出结果为4x^3 + 3x^2 + -5x^0 + 3x^5 + 4x^4 + 1x^3 + -4x^2 + 4x^1 + 2x^1 + -5x^0 + 3x^2 + 4x^3 + -4x^0 + 4x^3 + 5x^4 +

有人可以帮忙摆脱最后的+吗?

代码如下:

public static void Iterate(PolyDS result) { 

    NodeClass node = result.getFirstNode();

    while(node!= null) {


        System.out.print(node.getCoeff() + "x" + "^" + node.getExpo() + " + ");
        node = node.getNext();
    }
}

2 个答案:

答案 0 :(得分:1)

更改

System.out.print(node.getCoeff() + "x" + "^" + node.getExpo() + " + ");
node = node.getNext();

System.out.print(node.getCoeff() + "x" + "^" + node.getExpo());
if(node.hasNext()) System.out.print(" + ");
node = node.getNext();

理想情况下,您应该使用类似while(node.hasNext())的东西。

答案 1 :(得分:1)

一个选择是在循环中前移node的下一个值,并仅在下一个节点不是+时打印连接的null

NodeClass node = result.getFirstNode();

while (node != null) {
    String msg = node.getCoeff() + "x" + "^" + node.getExpo();
    node = node.getNext();
    msg += node != null ? " + " : "";

    System.out.print(msg);
}