2017-02-27 1 views
-1

String.format() 메서드를 사용하는 데 문제가 있습니다.자바 문자열 형식 문제

그래서 줄 넘김이있는 문자열을 만들고 싶습니다.이 줄은 %n입니다.

for (int i = 0; i < authorNames.size(); i++) { 
    tmpReturnString += authorNames.get(i) + "%n"; 
} 

authorNames와의 ArrayList를 beeing는 :

는이 같은 문자열을 만듭니다. 다음 나는 형식의 문자열을 반환하려면 :

returnResult.setAttributes(0, String.format(tmpReturnString.substring(0, tmpReturnString.length() - 1)))

returnResult

내 반환 될 것입니다.

하지만 여기는 java.util.UnknownFormatConversionException: Conversion = '%'입니다.

불행히도이 문제를 해결하는 방법이 없습니다. 또한, 다른 질문의 도움이 나를 도왔습니다.

미리 감사드립니다.

+0

라인 피드 문자는 n' \, 그것을 시도 '이다) –

+2

귀하의'substring' 작업이 끝에서'n'을 제거합니다. 왜 그걸 할거야? –

답변

2

마지막 줄 바꾸기를 원하지만 한 문자 만 제거하면 문자열이 %으로 끝납니다.

대신이 작업을 수행 : 항상 곁에

String.format(StringUtils.join(authorNames, "%n")); 
+0

Oh dang .. 정말 고마워요! 그걸 보지 못하게 너무 오랫동안 내 코드를보고 있었는데 ... –

0
for (int i = 0; i < authorNames.size(); i++) { 
    tmpReturnString += authorNames.get(i) + "%n"; 
} 

:

String.format(tmpReturnString.substring(0, tmpReturnString.length() - 2)) 

더 나은

또는, 당신은 아파치 평민을 사용하는 경우 (2 개 문자 대신에 단지 1 제거) 두 개의 마지막 문자가있는 문자열을 반환하는 것은 "% n"입니다. 사용시

substring(0, tmpReturnString.length() - 1) 

이제 마지막 문자는 '%'입니다. '%'은 (는) 올바른 형식 지정자가 아닙니다. 여기에서

세부 사항 : http://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html