Java에서 MessageFormat.format ()을 사용하여 메시지 형식 지정
리소스 번들에 일부 메시지를 저장했습니다. 이 메시지를 다음과 같이 형식화하려고합니다.
import java.text.MessageFormat;
String text = MessageFormat.format("You're about to delete {0} rows.", 5);
System.out.println(text);
첫 번째 매개 변수, 즉 실제 메시지가 어떻게 든 검색되는 속성 파일에 저장되어 있다고 가정합니다.
두 번째 매개 변수 인 5는 동적 값이며 {0}
발생하지 않는 자리 표시 자에 배치해야합니다 . 다음 줄이 인쇄됩니다.
{0} 개의 행을 삭제하려고합니다.
자리 표시자는 실제 매개 변수로 대체되지 않습니다.
여기서 아포스트로피 You're
입니다. 나는 You\\'re
그것이 작동하지 않는 것처럼 평소처럼 그것을 탈출하려고 노력 했습니다. 작동하려면 어떤 변경이 필요합니까?
문자가 표시 되도록 패턴 에 추가 아포스트로피 '
를 추가하십시오.MessageFormat
String
'
String text =
java.text.MessageFormat.format("You''re about to delete {0} rows.", 5);
^
MessageFormat 패턴 의 아포스트로피 (일명 작은 따옴표 )는 인용 된 문자열을 시작하며 자체적으로 해석되지 않습니다. 로부터 의 javadoc
작은 따옴표 자체는 문자열 전체에서 큰 작은 따옴표 ''로 표시되어야합니다.
가 String
You\\'re
받는 백 슬래시 문자를 추가하는 것과 동일한 결과를 얻을 수 String
있는 유일한 차이가 수 있도록 You\re
보다 생산 될 것이다 Youre
. (큰 따옴표 솔루션 ''
적용 전)
이중 아포스트로피 ( '')를 사용했는지 확인하십시오.
String text = java.text.MessageFormat.format("You''re about to delete {0} rows.", 5);
System.out.println(text);
편집하다:
문자열 내에서 작은 따옴표 쌍을 사용하여 작은 따옴표를 제외한 임의의 문자를 인용 할 수 있습니다. 예를 들어, 패턴 문자열 " '{0}'"는 FormatElement가 아니라 문자열 "{0}"을 나타냅니다. ...
일치하지 않는 따옴표는 주어진 패턴의 끝에서 닫힌 것으로 처리됩니다. 예를 들어, 패턴 문자열 " ' {0}"은 (는) 패턴 " ' {0} ' "으로 처리됩니다.
소스 http://docs.oracle.com/javase/7/docs/api/java/text/MessageFormat.html
"You''re"에서 단일 대신 이중 아포스트로피를 사용해야합니다. 예 :
String text = java.text.MessageFormat.format("You''re about to delete {0} rows.", 5);
System.out.println(text);
string.xml에 Android 문제가있는 모든 사람은 작은 따옴표 대신 \ '\'를 사용하십시오.
작은 따옴표 대신 아포스트로피 ’
(유니 코드 :)를 사용 하면 .\u2019
'
\'
참조 URL : https://stackoverflow.com/questions/17569608/format-a-message-using-messageformat-format-in-java
'UFO ET IT' 카테고리의 다른 글
MySQL 명령 줄 결과의 출력 형식을 CSV로 변경 (0) | 2020.12.15 |
---|---|
IComparer 인수 대신 람다 식 사용 (0) | 2020.12.15 |
OpenCV detectMultiScale () 매개 변수에 대한 권장 값 (0) | 2020.12.15 |
각 비트에 대해 주어진 확률이 0 또는 1 인 의사 랜덤 비트를 생성하는 빠른 방법 (0) | 2020.12.15 |
C에서 외부 프로그램을 실행하고 출력을 구문 분석하려면 어떻게해야합니까? (0) | 2020.12.15 |