我試圖從string.xml格式化一個字符串,並用它重複使用幾個值。我遇到了一些問題,因爲字符串還應該包含格式化程序使用的百分比符號。我已經試着用它的Unicode演示來代替%符號但這似乎沒有工作:strings.xml中的百分比符號
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="teststring">The new value is %1$s%</string>
<string name="teststring2">The new value is %1$s\u0025</string>
<string name="teststring3">The new value is %1$s</string>
</resources>
Java代碼:
String value = "25";
String formattedString = context.getResources().getString(R.string.teststring), value);
在這個例子中。 teststring和teststring2會產生錯誤,而teststring3可以正常工作。將格式化的字符串中的%符號放在xml-string中以獲得「新值爲25%」的正確方法是什麼?
感謝您的幫助。
堆棧跟蹤:
FATAL EXCEPTION: main
java.util.UnknownFormatConversionException: Conversion:
at java.util.Formatter$FormatSpecifierParser.unknownFormatConversionException(Formatter.java:2304)
at java.util.Formatter$FormatSpecifierParser.advance(Formatter.java:2298)
at java.util.Formatter$FormatSpecifierParser.parseConversionType(Formatter.java:2377)
at java.util.Formatter$FormatSpecifierParser.parseArgumentIndexAndFlags(Formatter.java:2348)
at java.util.Formatter$FormatSpecifierParser.parseFormatToken(Formatter.java:2281)
at java.util.Formatter.doFormat(Formatter.java:1069)
at java.util.Formatter.format(Formatter.java:1040)
at java.util.Formatter.format(Formatter.java:1009)
at java.lang.String.format(String.java:1988)
at android.content.res.Resources.getString(Resources.java:343)
at (... and so on)
- 編輯 - 感謝您的幫助。正確答案是
<string name="teststring">The new value if %1$s%%</string>
formatted =「false」一定不能設置。
我編輯答案嘗試 –