我可以在printf语句中使用条件语句吗?

时间:2015-09-29 16:39:24

标签: java

我的代码包含一个switch语句,并且在所有情况下都包含if else语句。它们都很短,所以我考虑通过将代码转换为条件语句来缩减代码。我想要的格式是......

System.out.printf( (conditional-Statement ) );

以下是其中一个案例的if else语句......

    if (count == 1) {
        System.out.printf("%3d", count);
    } else {
        System.out.printf("%11d", count);
    }

像...一样的东西。

System.out.print((count == 1) ? count : "  " + count);

不会产生语法错误,

但是当我做的时候一切都搞砸了......

System.out.printf((count == 1) ?  "%3d", count : "%11d", count);

我正在尝试做什么?

3 个答案:

答案 0 :(得分:9)

是的,有可能。但是请注意,三元运算符只返回一个值,不是两个。你要做的事情必须这样做:

System.out.printf((count == 1) ?  "%3d" : "%11d", count);

答案 1 :(得分:2)

那应该是

anotherController.setText(...);

您无需再次将System.out.printf((count == 1) ? "%3d": "%11d", count); 再次添加到条件语句中的表达式中。

或者为了清除混乱,让我们分开。

count

答案 2 :(得分:2)

可以使用'String.format',如下所示

System.out.print((count==1)? String.format("%3d", count): String.format("%11d", count));