0

我可以做这个:

public class first{
    public static void main (String[] args){
        String message = String.format("%s, next year you'll be % +d", "Michael", 37);
        System.out.printf(message);
    }
}

不工作:我收到运行时错误:

Exception in thread "main" java.util.IllegalFormatFlagsException: Flags = '+ '
        at java.util.Formatter$FormatSpecifier.checkNumeric(Unknown Source)
        at java.util.Formatter$FormatSpecifier.checkInteger(Unknown Source)
        at java.util.Formatter$FormatSpecifier.<init>(Unknown Source)
        at java.util.Formatter.parse(Unknown Source)
        at java.util.Formatter.format(Unknown Source)
        at java.util.Formatter.format(Unknown Source)
        at java.lang.String.format(Unknown Source)
        at first.main(first.java:3)

好吧,我只能使用空格符号或+。然后它正在工作。但是我怎样才能将两者结合起来呢?

4

3 回答 3

3

利用String.format("%s, next year you'll be +%d", "Michael", 37);

这将打印,Michael, next year you'll be +37

只是一个提示,大多数人倾向于大写他们的类文件,即,First而不是你的名字,first。当然,如果你是一个人工作,你可以随意命名任何你想要的名字和任何你想称呼它的名字。但是,如果您开始与团队合作,那么您应该尝试制定您的格式。

编辑:有人评论说你想要一个空间,所以只要扔一个这样的空间,+ %d

于 2013-08-09T18:31:10.037 回答
0

只需使用"%s, ... + %d", "str", 37

于 2013-08-09T18:35:20.627 回答
0

试试这个,为 % 添加转义

String message = String.format("%%s, next year you'll be %% +d", "Michael", 37);

这将解决错误,但要解决格式化尝试:

String message = String.format("%s, next year you'll be +%d", "Michael", 37);

干杯!!

于 2013-08-09T18:36:06.507 回答