Метод toString для полиномов
Это метод toString для форматирования членов многочлена и добавления их в строку. Его конечный результат выглядит примерно так: "+ 2x^2 + 2x + 1". Как мне удалить первый знак плюс? Спасибо
//toString method for returning ReesePolynomials in polynomaial format(for ReeseClient)
public String toString()
{
String output = "";
//the following are situations for formatting the output of each term and adding them to String output
for (int i = 0; i < TermLength; i++) // For the number of terms stated by the user earlier, values will be given for each ReeseTerm in the poly array
{
if (poly[i].getExpo() == 0 && poly[i].getCoeff() > 0)
{
output += " + " + poly[i].getCoeff();
}
else if (poly[i].getExpo() == 0 && poly[i].getCoeff() < 0)
{
output += " " + poly[i].getCoeff();
}
else if (poly[i].getCoeff() == 1 && (poly[i].getExpo() != 0 && poly[i].getExpo() != 1))
{
output += " + x^" + poly[i].getExpo();
}
else if (poly[i].getCoeff() == 1 && (poly[i].getExpo() == 1))
{
output += " + x";
}
else if (poly[i].getExpo() == 1 && poly[i].getCoeff() > 0)
{
output += " + " + poly[i].getCoeff() + "x";
}
else if (poly[i].getExpo() == 1 && poly[i].getCoeff() < 0)
{
output += " " + poly[i].getCoeff() + "x";
}
else if (poly[i].getCoeff() < 0 && (poly[i].getExpo() > 1 || poly[i].getExpo() < -1))
{
output += " " + poly[i].getCoeff() + "x^" + poly[i].getExpo();
}
else if (poly[i].getCoeff() == 0)
{}
else
{
output += " + " + poly[i].getCoeff() + "x^" + poly[i].getExpo();
}
}
return output; // the final string output is returned to be printed when called upon in main
}
2 ответа
Решение
Прямо перед оператором return используйте метод substring:
output = output.substring(2);
Это дает вам все символы от индекса 2 до конца. http://docs.oracle.com/javase/7/docs/api/java/lang/String.html
Проблема, с которой вы сталкиваетесь, обычно называется проблемой забора, или ошибкой. http://en.wikipedia.org/wiki/Off-by-one_error