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

String format parameter is not working in string.xml on android

在我的代码中,我使用

将字符串参数发送到 string.xml
String.format(getString(R.string.notification_devil_expire_coupon_for_one_user), "iphone", String.valueOf(loggedInUser.getExpiryReminder()));

in 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 iphone coupon expires in 3 days.

但我的输出是

 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,多个参数将是 %1$s、%2$s 等。