Java 字符串格式参数在android上的String.xml中不起作用

Java 字符串格式参数在android上的String.xml中不起作用,java,android,xml,string,string-formatting,Java,Android,Xml,String,String Formatting,在我的代码中,我使用以下命令将string参数发送到string.xml String.format(getString(R.string.notification_devil_expire_coupon_for_one_user), "iphone", String.valueOf(loggedInUser.getExpiryReminder())); 在string.xml中,我使用它来获取参数 <string name="notification_devil_expire_cou

在我的代码中,我使用以下命令将string参数发送到string.xml

String.format(getString(R.string.notification_devil_expire_coupon_for_one_user), "iphone", String.valueOf(loggedInUser.getExpiryReminder()));
在string.xml中,我使用它来获取参数

 <string name="notification_devil_expire_coupon_for_one_user">Do you even shop, bro? Your <xliff:g id="retailer">%s1</xliff:g> coupon expires in <xliff:g id="endDate">%s2</xliff:g> days.</string>
但我的输出是

 Do you even shop, bro? Your iphone1 coupon expires in 32 days.

参数编号添加到字符串中。我不知道我在代码中哪里做错了

字符串格式化程序用有序列表中的值替换
%s
。没有必要给它们编号。因此,不要使用
%s1
%s2
而是像这样在每个地方使用
%s

<string name="notification_devil_expire_coupon_for_one_user">Do you even shop, bro? Your <xliff:g id="retailer">%s</xliff:g> coupon expires in <xliff:g id="endDate">%s</xliff:g> days.</string>
你购物吗,兄弟?您的%s优惠券将在%s天后过期。

字符串格式化程序用有序列表中的值替换
%s
。没有必要给它们编号。因此,不要使用
%s1
%s2
而是像这样在每个地方使用
%s

<string name="notification_devil_expire_coupon_for_one_user">Do you even shop, bro? Your <xliff:g id="retailer">%s</xliff:g> coupon expires in <xliff:g id="endDate">%s</xliff:g> days.</string>
你购物吗,兄弟?您的%s优惠券将在%s天后过期。

为参数编号是一种很好的做法,因为顺序可能会因语言而异。如果只有一个参数是%s,则几个参数将是%1$s、%2$s等。

为参数编号是一种良好的做法,因为顺序可能会因语言而异。如果只有一个参数是%s,则有几个参数将是%1$s、%2$s等