如何在同一行声明两个或多个数据类型??(编程新手)



为了简单起见,我很难将两种数据类型组合在同一行。。。这是我当前的代码:

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方法。

相关内容

最新更新