string.xml中字符串通配

%1$s、%1$d的使用

s为字符串,d为整形。1表示替换的第一个参数,第二个则写为:%2$d/s。

string.xml中:
<pre name="code" class="html"><string name="welcome_messages">Hello, %1$s! You have %2$d new messages.</string>
 
   
  
Java代码中:
<pre name="code" class="java">String text = String.format(getResources().getString(R.string.welcome_messages), username, mailCount);
 
  

<xliff:g>标签

属性值举例说明

%n$ms:代表输出的是字符串,n代表是第几个参数,设置m的值可以在输出之前放置空格 

%n$md:代表输出的是整数,n代表是第几个参数,设置m的值可以在输出之前放置空格,也可以设为0m,在输出之前放置m个0 

%n$mf:代表输出的是浮点数,n代表是第几个参数,设置m的值可以控制小数位数,如m=2.2时,输出格式为00.00 

也可简单写成:

%d:表示整数

%f :表示浮点数

%s :表示字符串

string.xml中(要添加xliff的xmlns):
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">

<string name="test_xliff">小红今年<xliff:g id="xxx">%d</xliff:g>岁了,上<xliff:g id="yyy">%s</xliff:g>年级!</string>

Java代码中:
String test = String.format(getResources().getString(R.string.test_xliff), 7, "小学二");

复数字符串(Quantity Strings

在英语里,数量1是个特殊情况,我们写成“1 book”,但其他任何数量都要写成“n books”。

Android提供了诸如getQuantityString()的方法来选择合适的资源,支持的全集包括zero、one、 two、few、many和other。

 

string.xml中:

<plurals name="numberOfSongsAvailable">
<item quantity="one">One song found.</item>
<item quantity="other">%d songs found.</item>
</plurals>

Java代码中:

int count = getNumberOfsongsAvailable(); 
String songsFound = getResources().getQuantityString(R.plurals.numberOfSongsAvailable, count, count);
对于字符串“%d songs found”,第一个count参数选择合适的复数字符串,第二个count参数插入占位符%d中。如果复数字符串资源不包含格式化信息,就不需要给getQuantityString()传递第三个参数。

你可能感兴趣的:(string.xml中字符串通配)