return语句可以格式化为printf吗?

时间:2014-05-04 20:44:20

标签: java return printf

我是java的新手,所以如果这是一个“愚蠢”的问题,请耐心等待。有没有办法格式化类似于printf(“%d”,a)的return语句?到目前为止,这是我的代码片段。

    public static int numUnique(int a, int b, int c) {
        if (a==b && a==c) {
            System.out.println("No unique numbers.");
        } else if (a==b && a!=c) {
            System.out.printf("%d%d", a, c);
        } else if (a==c && a!=b) {
            System.out.printf("%d%d", c, b);
        } else if (b==c && b!=a) {
            System.out.printf("%d%d", b, a);
        } else {
            System.out.printf("%d%d%d", a, b, c);
        }
    }
}

我知道在那里需要一个返回语句以获得正确的语法,我想在我的代码中使用类似于“理论上”使用的printf的返回。谢谢!

杰森

2 个答案:

答案 0 :(得分:5)

如果您正在使用返回String的方法,则可以使用String.format方法,该方法采用与System.out.printf相同的参数。所以你的问题的代码看起来像这样。

请注意,我已经引入了一些空格来阻止整数一起运行,看起来像一个数字。

public static String numUnique(int a, int b, int c) {
    if (a==b && a==c) {
         return "No unique numbers.";
    } else if (a==b && a!=c) {
        return String.format("%d %d", a, c);
    } else if (a==c && a!=b) {
        return String.format("%d %d", c, b);
    } else if (b==c && b!=a) {
        return String.format("%d %d", b, a);
    } else {
        return String.format("%d %d %d", a, b, c);
    }
}

答案 1 :(得分:1)

使用return语句,您回馈数据。程序(或用户)如何处理该数据并不是该方法的关注点。

通过格式化操作,您可以表示数据。只要您拥有正确的数据,您就可以以任何您喜欢的方式表示它。

因此,严格地说,除非您想以另一个答案建议的方式使用String.format,否则不可能这样做。