IT박스

문자열 리소스 파일의 형식 문

itboxs 2020. 7. 9. 19:32
반응형

문자열 리소스 파일의 형식 문


다음과 같이 일반적인 strings.xml 리소스 파일에 문자열이 정의되어 있습니다.

<string name="hello_world"> HELLO</string>

아래와 같은 형식 문자열을 정의 할 수 있습니까?

 result_str = String.format("Amount: %.2f  for %d days ",  var1, var2);

strings.xml 리소스 파일에서

특수 문자를 이스케이프하려고했지만 작동하지 않습니다.


formatted="false"XML에서 사용할 필요는 없습니다 . 짧은 버전 (예 : 또는 ) 대신 정규화 된 문자열 형식 표시 자 %[POSITION]$[TYPE](여기서 [POSITION]특성 위치 [TYPE]는 변수 유형 임) 를 사용해야 합니다.%s%d

안드로이드 문서 에서 인용 : 문자열 형식화 및 스타일링 :

<string name="welcome_messages">Hello, %1$s! You have %2$d new messages.</string>

이 예제에서 형식 문자열에는 두 개의 인수 %1$s가 있습니다. 문자열과 %2$d10 진수입니다. 다음과 같이 애플리케이션의 인수로 문자열을 형식화 할 수 있습니다.

Resources res = getResources();
String text = res.getString(R.string.welcome_messages, username, mailCount);

formatted="false"문자열 리소스에 추가해야 합니다


여기에 예가 있습니다

당신의 strings.xml:

<string name="all" formatted="false">Amount: %.2f%n  for %d days</string>

귀하의 코드에서 :

yourTextView.setText(String.format(getString(R.string.all), 3.12, 2));

내부 파일은 strings.xml다음과 같은 문자열 리소스를 정의합니다.

<string name="string_to_format">Amount: %1$f  for %2$d days%3$s</string>

코드 내에서 (Context에서 상속한다고 가정) 간단히 다음을 수행하십시오.

 String formattedString = getString(R.string.string_to_format, floatVar, decimalVar, stringVar);

LocalPCGuy 또는 Giovanny Farto M 의 답변과 비교 하여 String.format 메서드는 필요하지 않습니다.


안드로이드 문서 에서 인용 :

을 사용하여 문자열을 형식화해야하는 경우 문자열 String.format(String, Object...)인수에 형식 인수를 넣어서 수행 할 수 있습니다. 예를 들어 다음 리소스를 사용하십시오.

<string name="welcome_messages">Hello, %1$s! You have %2$d new messages.</string>

이 예제에서 형식 문자열에는 두 개의 인수 %1$s가 있습니다. 문자열과 %2$d10 진수입니다. 다음과 같이 애플리케이션의 인수로 문자열을 형식화 할 수 있습니다.

Resources res = getResources();
String text = String.format(res.getString(R.string.welcome_messages), username, mailCount);

참고 URL : https://stackoverflow.com/questions/12627457/format-statement-in-a-string-resource-file

반응형