Как удалить последний токен в system.out.println? - PullRequest
0 голосов
/ 25 октября 2018

У меня есть этот фрагмент кода, и результат будет 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 голосов
/ 25 октября 2018

Один из вариантов - заглянуть вперед к следующему значению 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);
}
0 голосов
/ 25 октября 2018

Изменить

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()).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...