“Java String 格式化”的版本间的差异

来自姬鸿昌的知识库
跳到导航 跳到搜索
第1行: 第1行:
 +
=== 参数个数等于占位符个数示例 ===
 +
<syntaxhighlight lang="java">
 +
public class Test2 {
 +
 +
    public static void main(String[] args) {
 +
 +
        String format = "%1$s%2$s";
 +
 +
        String[] strArr = {"a", "b"};
 +
 +
        String ret = String.format(format, strArr);
 +
 +
        System.out.println(ret);
 +
 +
    }
 +
 +
}
 +
</syntaxhighlight><syntaxhighlight lang="console">
 +
ab
 +
</syntaxhighlight>
 +
 
=== 参数个数小于占位符个数示例 ===
 
=== 参数个数小于占位符个数示例 ===
 
<syntaxhighlight lang="java">
 
<syntaxhighlight lang="java">

2022年12月7日 (三) 00:36的版本

参数个数等于占位符个数示例

public class Test2 {

    public static void main(String[] args) {

        String format = "%1$s%2$s";

        String[] strArr = {"a", "b"};

        String ret = String.format(format, strArr);

        System.out.println(ret);

    }

}
ab

参数个数小于占位符个数示例

public class Test1 {

    public static void main(String[] args) {

        String format = "%1s$%2s$";

        String[] strArr = {"a"};

        String ret = String.format(format, strArr);

        System.out.println(ret);

    }

}
Exception in thread "main" java.util.MissingFormatArgumentException: Format specifier '%2s'
	at java.base/java.util.Formatter.format(Formatter.java:2672)
	at java.base/java.util.Formatter.format(Formatter.java:2609)
	at java.base/java.lang.String.format(String.java:2897)
	at org.example.stringformat.Test1.main(Test1.java:11)