gpt4 book ai didi

java - 为什么我会收到以下 String.format() 代码的 UnknownFormatConversionException?

转载 作者:行者123 更新时间:2023-11-30 01:42:04 53 4
gpt4 key购买 nike

我试图组合一个正则表达式,它可以通过字符串格式选项使用重复模式。

String non_dot = "[^\\.]";
String dot = "\\.";
String sfp1 = "%1$s*?%2$s";
String sf = sfp1 + sfp1 + sfp1 + sfp1.substring(0,3) + "*";
System.out.println(sf);
String regex = String.format(sf, non_dot, dot);
System.out.println(regex);

打印sf的输出如下:

%1$s*?%2$s%1$s*?%2$s%1$s*?%2$s%1$*

但是,当需要评估 String.format(...) 来推导 regex 变量时,我的代码会崩溃:

Exception in thread "main" java.util.UnknownFormatConversionException: Conversion = '1'
at java.util.Formatter.checkText(Formatter.java:2547)
at java.util.Formatter.parse(Formatter.java:2533)
at java.util.Formatter.format(Formatter.java:2469)
at java.util.Formatter.format(Formatter.java:2423)
at java.lang.String.format(String.java:2792)
at Solution.main(Solution.java:23)

我一直在使用这些资源。

按照这个,应该可以了!

有人能找出我为什么会收到此错误吗?

最佳答案

正如 @JB Nizet 的评论所说:你的子字符串结束边界是错误的,因此你有 %1$*在你的格式字符串中,这不是一个东西(它在 s 之后缺少 $ )。

关于java - 为什么我会收到以下 String.format() 代码的 UnknownFormatConversionException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59600547/

53 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com