如何对齐 Java 中的数字
How to align numbers in Java
所以我想将显示第十年的行与其余数字对齐。
我试过 printf 但它似乎不起作用。
我已经看过很多帖子,但似乎一切都在使用某些字符串格式围绕 printf 漫游。
如果你能用一些例子向我解释如何做到这一点,那将对我有很大帮助。
感谢您的帮助。
public class Foo {
public static void main(String[] args) {
double capitalDeDepart = capitalDepart(0);
double tauxInteretAnnuel = interetAnnuel(0);
double anneeTotalPlacement = dureePlacement(0);
affichage();
calcul(capitalDeDepart, tauxInteretAnnuel, anneeTotalPlacement);
}
public static double capitalDepart(double capitalDeDepart) {
Scanner clavier = new Scanner(System.in);
System.out.print("Indiquez le capital de départ : ");
capitalDeDepart = clavier.nextDouble();
return capitalDeDepart;
}
public static double interetAnnuel(double tauxInteretAnnuel) {
Scanner clavier = new Scanner(System.in);
System.out.print("Inscrivez le taux d'intérêt annuel : ");
tauxInteretAnnuel = clavier.nextDouble();
return tauxInteretAnnuel;
}
public static double dureePlacement(double anneeTotalPlacement) {
Scanner clavier = new Scanner(System.in);
System.out.print("Indiquez la durée du placement en années : ");
anneeTotalPlacement = clavier.nextDouble();
return anneeTotalPlacement;
}
public static void affichage() {
System.out.println("Année Capital Intérêt Nouveau capital");
System.out.println("----------------------------------------------");
}
public static void calcul(double capitalDeDepart, double tauxInteretAnnuel, double anneeTotalPlacement) {
int annee = 0;
double interet = 0;
double nouveauCapital = 0;
double tauxEnDecimal = 0;
do {
annee++;
capitalDeDepart = capitalDeDepart + interet;
tauxEnDecimal = tauxInteretAnnuel / 100;
interet = capitalDeDepart * tauxEnDecimal;
nouveauCapital = (int)(capitalDeDepart + interet);
System.out.println(" " + annee + " " + (int)capitalDeDepart + "$ " + (int)interet + "$ " + (int)nouveauCapital + "$");
} while (annee != anneeTotalPlacement);
}
}
Indiquez le capital de départ : 10000
Inscrivez le taux d'intérêt annuel : 10
Indiquez la durée du placement en années :
Année Capital Intérêt Nouveau capital
----------------------------------------------
1 10000$ 1000$ 11000$
2 11000$ 1100$ 12100$
3 12100$ 1210$ 13310$
4 13310$ 1331$ 14641$
5 14641$ 1464$ 16105$
6 16105$ 1610$ 17715$
7 17715$ 1771$ 19487$
8 19487$ 1948$ 21435$
9 21435$ 2143$ 23579$
10 23579$ 2357$ 25937$
您必须尝试添加一个字符串变量...例如...
String reglerAnnee;
...
// add a space if year(anne) is less than 10
// using a ternary operator, like an "if" but less code
reglerAnnee = annee < 10 ? " " : "";
..
// and add to the println ...
System.out.println(" "+reglerAnnee + annee + " " + (int) capitalDeDepart
+ "$ " + (int) interet + "$ "
+ (int) nouveauCapital + "$");
...
结果会是这样的:
1 10000$ 1000$ 11000$
2 11000$ 1100$ 12100$
...
9 21435$ 2143$ 23579$
10 23579$ 2357$ 25937$
只需将您的 System.out.println(...)
替换为以下内容:
System.out.format("%2d %5d$ %5d$ %5d$\n", annee,
(int)capitalDeDepart, (int)interet, (int)nouveauCapital);
所以我想将显示第十年的行与其余数字对齐。 我试过 printf 但它似乎不起作用。 我已经看过很多帖子,但似乎一切都在使用某些字符串格式围绕 printf 漫游。 如果你能用一些例子向我解释如何做到这一点,那将对我有很大帮助。 感谢您的帮助。
public class Foo {
public static void main(String[] args) {
double capitalDeDepart = capitalDepart(0);
double tauxInteretAnnuel = interetAnnuel(0);
double anneeTotalPlacement = dureePlacement(0);
affichage();
calcul(capitalDeDepart, tauxInteretAnnuel, anneeTotalPlacement);
}
public static double capitalDepart(double capitalDeDepart) {
Scanner clavier = new Scanner(System.in);
System.out.print("Indiquez le capital de départ : ");
capitalDeDepart = clavier.nextDouble();
return capitalDeDepart;
}
public static double interetAnnuel(double tauxInteretAnnuel) {
Scanner clavier = new Scanner(System.in);
System.out.print("Inscrivez le taux d'intérêt annuel : ");
tauxInteretAnnuel = clavier.nextDouble();
return tauxInteretAnnuel;
}
public static double dureePlacement(double anneeTotalPlacement) {
Scanner clavier = new Scanner(System.in);
System.out.print("Indiquez la durée du placement en années : ");
anneeTotalPlacement = clavier.nextDouble();
return anneeTotalPlacement;
}
public static void affichage() {
System.out.println("Année Capital Intérêt Nouveau capital");
System.out.println("----------------------------------------------");
}
public static void calcul(double capitalDeDepart, double tauxInteretAnnuel, double anneeTotalPlacement) {
int annee = 0;
double interet = 0;
double nouveauCapital = 0;
double tauxEnDecimal = 0;
do {
annee++;
capitalDeDepart = capitalDeDepart + interet;
tauxEnDecimal = tauxInteretAnnuel / 100;
interet = capitalDeDepart * tauxEnDecimal;
nouveauCapital = (int)(capitalDeDepart + interet);
System.out.println(" " + annee + " " + (int)capitalDeDepart + "$ " + (int)interet + "$ " + (int)nouveauCapital + "$");
} while (annee != anneeTotalPlacement);
}
}
Indiquez le capital de départ : 10000 Inscrivez le taux d'intérêt annuel : 10 Indiquez la durée du placement en années :
Année Capital Intérêt Nouveau capital
----------------------------------------------
1 10000$ 1000$ 11000$
2 11000$ 1100$ 12100$
3 12100$ 1210$ 13310$
4 13310$ 1331$ 14641$
5 14641$ 1464$ 16105$
6 16105$ 1610$ 17715$
7 17715$ 1771$ 19487$
8 19487$ 1948$ 21435$
9 21435$ 2143$ 23579$
10 23579$ 2357$ 25937$
您必须尝试添加一个字符串变量...例如...
String reglerAnnee;
...
// add a space if year(anne) is less than 10
// using a ternary operator, like an "if" but less code
reglerAnnee = annee < 10 ? " " : "";
..
// and add to the println ...
System.out.println(" "+reglerAnnee + annee + " " + (int) capitalDeDepart
+ "$ " + (int) interet + "$ "
+ (int) nouveauCapital + "$");
...
结果会是这样的:
1 10000$ 1000$ 11000$
2 11000$ 1100$ 12100$
...
9 21435$ 2143$ 23579$
10 23579$ 2357$ 25937$
只需将您的 System.out.println(...)
替换为以下内容:
System.out.format("%2d %5d$ %5d$ %5d$\n", annee,
(int)capitalDeDepart, (int)interet, (int)nouveauCapital);