Я пытался собрать выражение регулярного выражения, которое могло бы использовать повторяющиеся шаблоны с помощью параметра формата String.
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)
Я использовал эти ресурсы.
В соответствии с этим оно должно работать!
Может кто-нибудь определить, почему я получаю эту ошибку?