2017-10-31 3 views
0

이 코드는 String.Format 자바 원시 메소드를 사용하여 문자열을 포맷하는 동안 예외를 발생시킵니다.java.util.UnknownFormatConversionException : Conversion = '#'

String value = "#%1$s#.*?%#"; 
String patt = String.format(value);  

java.util.UnknownFormatConversionException : java.util.Formatter.checkText에서 변환 = '#의'

(알 소스)에 java.util.Formatter.parse

(알 알 수없는 소스) java.util.Formatter.format에서

(알 수없는 소스) java.util.Formatter.format에서

(소스) java.lang.String.format에서

(알 수없는 소스)

잘못 어떤 생각?

+0

당신이하려는 일이 불분명합니다. 당신은 그것이 무엇을 기대한다고 생각 했습니까? 왜? – shmosel

답변

0

원하는 문자열의 서식을 지정하려면 문자열 형식을 추가해야합니다. 예 :

public static String format(String format, Object... args) 

public static String format(Locale locale, String format, Object... args) 

로케일 :

String value = "#%1$s#.*?%#"; 
String patt = String.format("%s",value); 

System.out.println(patt); 

Read this

0

두 포맷 방법있다의 형식에 적용 할 수있는 장소() 메소드를 지정 .

형식 : 문자열의 형식.

args : 형식 문자열에 대한 인수. 0이 될 수도 있습니다

그래서 귀하의 경우, 지정하는 형식이 적절하지 않을 수 있습니다. https://dzone.com/articles/java-string-format-examples

-1

값 :

String value = "#%1$s#.*?%#"; 

는 문자 %를 포함 할 수 없습니다

당신은 당신이 여기에 사용할 수있는 다른 형식을 확인할 수 있습니다. 다시 발음 된 단어로 사용됩니다.

+0

예, 가능합니다. 실제로, 형식 메서드에 어떤 용도로든 사용하려면 꽤 많이 포함되어야합니다. – rghome