Я создаю программу стиля piggybank в java для проекта класса, который может добавлять, вычитать, сравнивать и увеличивать/уменьшать монеты. Я пытаюсь добавить в код следующий метод toString, чтобы он отображал правильные слова для соответствующих значений монет.Java: добавление целочисленных значений в строку, только если определенное значение, строка форматирования правильно
Если какая-либо из четвертей, копейки, никели или пенни равна 0, я хочу, чтобы они были полностью оторваны от строки. Если есть только 1 из кварталов, копейки, никели или пенни, я хочу, чтобы на выходе были указаны квартал, копейка, никель или копейка.
Так в основном, если в течение 4 кварталов, 0 пятаков, 0 никелевые и 1 пенни, он бы составил $ 1,01 в банке выход: $ 1,01: 4 четверти, 1 пенни
Я не уверен, как это сделать это. Я пытался исчерпывающе сделать это с помощью утверждений, но я уверен, что есть лучший способ. Вот код, который у меня есть в настоящее время, который, очевидно, не работает, когда есть более одного значения, установленного в 0 или 1, и это выглядит нелепо.
public String toString() {
NumberFormat fmt = NumberFormat.getCurrencyInstance();
String str = fmt.format(amountInJar()); //amountInJar is a double value of the current currency
if (this.quarters > 1 && this.dimes > 1 && this.nickels > 1
& this.pennies > 1) {
str = str + ": " + quarters + " quarters, " + dimes + " dimes, "
+ nickels + " nickels, " + pennies + " pennies ";
} else if (quarters == 1) {
str = str + ": " + quarters + " quarter, " + dimes + " dimes, "
+ nickels + " nickels, " + pennies + " pennies ";
} else if (quarters == 0) {
str = str + ": " + dimes + " dimes, " + nickels + " nickels, "
+ pennies + " pennies ";
} else if (dimes == 1) {
str = str + ": " + quarters + " quarters, " + dimes + " dime, "
+ nickels + " nickels, " + pennies + " pennies ";
} else if (dimes == 0) {
str = str + ": " + quarters + " quarters, " + nickels
+ " nickels, " + pennies + " pennies ";
} else if (nickels == 1) {
str = str + ": " + quarters + " quarters, " + dimes + " dimes, "
+ nickels + " nickel, " + pennies + " pennies ";
} else if (nickels == 0) {
str = str + ": " + quarters + " quarters, " + dimes + " dimes, "
+ pennies + " pennies ";
} else if (pennies == 1) {
str = str + ": " + quarters + " quarters, " + dimes + " dimes, "
+ nickels + " nickels, " + pennies + " penny";
} else if (pennies == 0) {
str = str + ": " + quarters + " quarters, " + dimes + " dimes, "
+ nickels + " nickels ";
}
return str;
}
Я знаю, что это будет просто легче форматировать с четверти (ов), гривенник (ов), никеля (ов), пенни (ий), но для того, чтобы пройти испытания инструкторов JUnit, он должен быть отформатирован таким образом.
Благодарим за помощь!
Большое вам спасибо за помощь! Я потратил столько времени, пытаясь понять это, и я никогда бы не подумал об этом. Еще раз спасибо. – TABmayfield