English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

java & Android 포맷 문자열 자세히 설명

%1$s %%1$d Android string (java & Android 포맷 문자열)

1$s // String
%1$d // int

//R.string.old:
<string name="old">저는 올해 %1$d 살</string>

String sAgeFormat = getResources().getString(R.string.old);
String sFinalAge = String.format(sAgeFormat, 23);

1정수형, 예를 들어 "저는 올해 %23岁了", 이23정수입니다. string.xml에서 이렇게 쓸 수 있습니다, <string name="old">저는 올해 %1$d 살</string> 

프로그램에서 사용합니다

String sAgeFormat = getResources().getString(R.string.old); 
String sFinalAge = String.format(sAgeFormat, 23); 

%%1$d를 대체합니다23; 

 %1$d는 name="old" 전체에서 첫 번째 정수의 대체를 의미합니다. name에 두 개의 대체할 정수가 있으면 두 번째는 %로 작성됩니다:2$d, 이를 따라서; 구체적인 프로그램에서 대체는 아래 string형을 참조하세요; 

 2string형, 예를 들어 "저의 이름은 이사, 저는 수도 베이징에서 옵니다"; 여기서 "이사"와 "수도 베이징"은 모두 대체되어야 합니다.  

string.xml에서 이렇게 쓸 수 있습니다, <string name="alert">저의 이름은 %1$s, 저는 %2$s</string>  

프로그램에서: 

 String sAgeFormatString sAgeFormat1= getResources().getString(R.string.alert);    
 String sFinal1 = String.format(sAgeFormat1, "이사", "수도 베이징");  

여기서 두 개의 string이 대체되어야 합니다. 위 프로그램의 순서에 따라 차례대로 대응합니다.

<xliff:g> 태그 소개:

속성 id는 자유롭게 이름을 지을 수 있습니다
속성 값 예제 설명
%n$ms:문자열을 출력하는 것을 나타냅니다. n은 몇 번째 매개변수인지 나타냅니다. m의 값을 설정하면 출력 전에 공백을 추가할 수 있습니다
%n$md:정수를 출력하는 것을 나타냅니다. n은 몇 번째 매개변수인지 나타냅니다. m의 값을 설정하면 출력 전에 공백을 추가할 수 있습니다. 또는 0m을 설정하면 출력 전에 m개의 0을 추가할 수 있습니다
%n$mf:浮点수를 출력하는 것을 나타냅니다. n은 몇 번째 매개변수인지 나타냅니다. m의 값을 설정하면 소수점 자리수를 제어할 수 있습니다. 예를 들어 m=2.2시, 출력 형식은 00.00입니다

또한 간단히 쓸 수도 있습니다:

%d   (정수를 나타냅니다)

%f    (소수점 숫자를 나타냅니다)

%s   (문자열을 나타냅니다)

사용 방법 예시:

1.

<?xml version="1.0" encoding="utf-8"?>

<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2>

2.

 <string name="test_xliff">홍길동 올해<xliff:g id="xxx">%d</xliff:g>岁了,上<xliff:g id="yyy">%s</xliff:g>학년!</string>

3.

String test = String.format(getResources().getString(R.string.test_xliff), 7, "초등학교 2");

출력:

홍길동 올해7이제 초등학교 2학년에 다니고 있습니다!

이것은 Java와 Android에서 문자열을 출력하는 자료 정리입니다. 앞으로도 관련 자료를 추가할 예정입니다. 감사합니다!

언급: 이 문서의 내용은 인터넷에서 가져왔으며, 저작권자는 모두 소유합니다. 내용은 인터넷 사용자가 자발적으로 기여하고 자체로 업로드한 것이며, 이 사이트는 소유권을 가지지 않으며, 인공 편집 처리를 하지 않았으며, 관련 법적 책임도 부담하지 않습니다. 저작권 침해가 의심되는 내용이 있다면, notice#w로 이메일을 보내 주세요.3codebox.com(보고할 때는 #을 @으로 변경하십시오. 관련 증거를 제공하고, 사실이 확인되면, 이 사이트는 즉시 저작권 침해 내용을 삭제합니다。)

당신이 좋아할 만한 것