为了简单起见,我很难将两种数据类型组合在同一行。。。这是我当前的代码:
public class countryPopulations{
static String zero = "Canada ";
static String one = "USA ";
static String two = "China ";
static double Canada = 35.16;
static double US = 316.1;
static double China = 1.357;
static String million = " million";
static String billion = " billion";
public static void main(String[] args){
System.out.println(zero +Canada + million);
System.out.println(one +US + million);
System.out.println(two +China + billion);
}
}
正如你所看到的,仅仅在一行上打印"加拿大3516万"或"美国3.161亿"就需要做很多工作。我希望我已经包含了足够的信息,如果有人能帮忙,那就太好了!此外,如果你有任何额外的信息可以分享,或者关于我刚刚介绍的代码的提示(因为我显然是一个编程初学者),那将是非常棒的。。再次感谢!
一种可能的选择是使用数组和类似的东西
String[] countries = { "Canada", "USA", "China" };
double[] population = { 35.16, 316.1, 1.357 };
String[] suffix = { "million", "billion" };
for (int i = 0; i < countries.length; i++) {
System.out.printf("%s %.3f %s%n", countries[i], population[i],
(i == 2) ? suffix[1] : suffix[0]);
}
或者,您可以使用类似的Country
POJO
static class Country {
String name;
double population;
boolean billion = false;
public Country(String name, double population, boolean billion) {
this.name = name;
this.population = population;
this.billion = billion;
}
public String toString() {
return String.format("%s %.3f %s", name, population,
(billion) ? "billion" : "million");
}
}
public static void main(String[] args) {
Country [] countries = new Country[] {
new Country("Canada",35.16,false),
new Country("USA",316.1,false),
new Country("China",1.357, true)
};
for (Country c : countries) {
System.out.println(c);
}
}
您所做的不是组合两种数据类型。在这种情况下System.out.println(零+加拿大+百万);由于System.out.println的第一个参数是零,它是字符串。java要做的是将以下参数转换为字符串或如果它们是对象,它将调用Object类中的toString方法。