my strings.xml有几个字符串,格式如下
过去%1$d天内没有新邮件。
我在Java代码中使用它们,如下所示:
string.format(获取字符串(r.string.msg_str),3);
我成功地收到“最近3天没有新消息”。
现在,我该如何将整型参数部分放在arabic的values ar->strings.xml文件中的上述字符串中?
我试过用几种方法,如%1$d或d$1%或200f%1$d等,但似乎没有效果。我不能把论点正确地打印成3。
示例:_______________
在Java代码部分,我尝试了string.format(locale.getdefault(),getstring(r.string.msg_str),3);
当电话语言设置为阿拉伯语时,我希望上述字符串的输出如下:
____________㶋_。
以上是谷歌翻译的翻译。
最佳答案
我从你的问题中提取文本并粘贴到我的strings.xml
文件中:
当我运行我的应用程序时,我马上就会崩溃。它所做的就是:
TextView textView = (TextView) findViewById(R.id.text);
textView.setText(getString(R.string.formatting, 6));
这是车祸:
E/AndroidRuntime( 5739): Caused by: java.util.UnknownFormatConversionException: Conversion: أ
E/AndroidRuntime( 5739): at java.util.Formatter$FormatToken.unknownFormatConversionException(Formatter.java:1399)
E/AndroidRuntime( 5739): at java.util.Formatter$FormatToken.checkFlags(Formatter.java:1336)
E/AndroidRuntime( 5739): at java.util.Formatter.transform(Formatter.java:1442)
E/AndroidRuntime( 5739): at java.util.Formatter.doFormat(Formatter.java:1081)
E/AndroidRuntime( 5739): at java.util.Formatter.format(Formatter.java:1042)
E/AndroidRuntime( 5739): at java.util.Formatter.format(Formatter.java:1011)
E/AndroidRuntime( 5739): at java.lang.String.format(String.java:1999)
接下来,我突出显示了format参数(
d$1%
),删除了它,并重新键入了它(通过按%
1
$
d
)。我的绳子现在看起来像这样:现在,当我运行我的应用程序时,它运行得很好:
因为这两个字符串在我看来是相同的,所以我假设第一个字符串中有一些与文本方向相关的非打印字符。这些非打印字符可能会混淆字符串格式参数的解析。