Java MessageFormat에서 중괄호를 이스케이프 할 수 있습니까?
Java MessageFormat에 일부 중괄호를 출력하고 싶습니다. 예를 들어 다음이 작동하지 않는다는 것을 알고 있습니다.
MessageFormat.format(" public {0} get{1}() {return {2};}\n\n", type, upperCamel, lowerCamel);
"return {2}"을 둘러싼 중괄호를 이스케이프하는 방법이 있습니까?
예를 들어 작은 따옴표 안에 넣을 수 있습니다.
'{'return {2};'}'
자세한 내용은 여기 를 참조하십시오.
와. 놀라다! MessageFormat에 대한 문서 는 답을 알고 있습니다.
내에서 문자열 ,
"''"
작은 따옴표를 나타냅니다. QuotedString는 작은 따옴표를 제외한 임의의 문자를 포함 할 수 있습니다; 둘러싼 작은 따옴표가 제거됩니다. UnquotedString은 작은 따옴표와 왼쪽 중괄호를 제외한 임의의 문자를 포함 할 수 있습니다. 따라서 형식화 된 메시지를 생성해야하는 문자열"'{0}'"
은"'''{'0}''"
또는 로 쓸 수 있습니다"'''{0}'''"
.
작은 따옴표 사용 :
MessageFormat.format(" public {0} get{1}() '{'return {2};'}'\n\n",
type, upperCamel, lowerCamel);
실제로 작은 따옴표를 사용하려면 두 배만 사용 하면됩니다. 에 대한 javadoc에서는MessageFormat
이 다소 복잡한 예제를 제공합니다 :
따라서 형식화 된 메시지를 생성해야하는 문자열
"'{0}'"
은"'''{'0}''" or "'''{0}'''"
.
이다 ''
다음, 단일 견적 '{'
후, 이스케이프 중괄호을 위해 0
, '}'
닫는 중괄호과 ''
닫는 견적.
System.out.println(MessageFormat.format("I want to see ticks and curly braces around '''{'{0}'}'''", "this"));
이 정규식을 pearl 또는 다른 언어와 함께 사용하여 중괄호 및 작은 따옴표 (x27)를 이스케이프 할 수 있습니다. 자리 표시자를 건드리지 않습니다. 예 {0}
:bash echo "# 'single' quote test \n\n public {0} get{1}() {return {2};}\n\n" | perl -pe 's/\x27/\x27\x27/g; s/\{([^0-9])/\x27\{\x27$1/g; s/([^0-9])\}/$1\x27\}\x27/g'
참고 URL : https://stackoverflow.com/questions/1187093/can-i-escape-braces-in-a-java-messageformat
'IT Share you' 카테고리의 다른 글
프로그래밍 방식으로 C ++ 배열의 크기를 결정합니까? (0) | 2020.11.30 |
---|---|
Rails 애플리케이션의 Javascript Include Tag 모범 사례 (0) | 2020.11.30 |
LINES 및 COLUMNS 환경 변수가 스크립트에서 손실 됨 (0) | 2020.11.30 |
C ++에서 정적 const 멤버를 초기화하는 방법은 무엇입니까? (0) | 2020.11.30 |
리스트를 할 수없는 이유 (0) | 2020.11.30 |