转义倍数“;%”;Android中的角色

转义倍数“;%”;Android中的角色,android,xml,escaping,arrays,Android,Xml,Escaping,Arrays,在本书中,我有这样一个野兽般的条目(将其浓缩到合理的最低限度以再现效果): 100%foo 40%bar 这会产生以下错误: Multiple annotations found at this line: - error: Multiple substitutions specified in non-positional format; did you mean to add the formatted="false" attribute? - error: Found tag </

在本书中,我有这样一个野兽般的条目(将其浓缩到合理的最低限度以再现效果):

100%foo 40%bar
这会产生以下错误:

Multiple annotations found at this line:
- error: Multiple substitutions specified in non-positional format; did you mean to add the formatted="false" attribute?
- error: Found tag </item> where </string-array> is expected
在此行找到多个批注:
-错误:以非位置格式指定了多个替换;您的意思是添加formatted=“false”属性吗?
-错误:在预期的位置找到标记
添加formatted=“false”不会改变任何事情

<item>100&#37; foo 40&#37;bar</item>
100%;foo 40和37;酒吧
导致相同的错误消息。什么

<item>100% foo 40bar</item>
<item>100 foo 40%bar</item>
<item>100% foo 40%</item>
100%foo 40巴
100富40%巴
100%富40%
一切都会好的。
忽略使用\%转义它,导致相同的错误。%%不会导致错误,但我得到%%。

在xml中将每个字符编码为unicode字符对我来说很有用:

<string name="test">100\u0025 foo 40\u0025bar</string>
100\u0025 foo 40\u0025bar
使用可能有效

<item><![CDATA[100% foo 40%]]></item>


在XML中,
%
是一个保留字符,如
等。
对字符串资源中使用的每个
%%
使用
%

,您所说的大部分都不起作用,但请参见最后一个选项。Thanx获取答案。不幸的是,我没有处理一个可能允许替换的字符串,除非有一种方法可以在数组中进行替换。在my arrays.xml中,有一个包含项的字符串数组。我通过getResources().getStringArray(R.array.versions)加载这些文件;哎哟,getStringArray使用格式化程序,但不允许传递格式参数。我担心您必须在加载数组后重新创建它,在%中替换,或者在使用时更正字符串。Java字符串是不可变的。方法返回副本。哈哈,collapsar:)我喜欢你的想法,但我决定使用%%和随后的字符串替换。所以我不能为其他遇到同样问题的人选择你的解决方案?好吧,我想这应该是一条路。但我还是想理解为什么两者都是%;和\u0025是%,但版本1使我遇到了错误??我在这方面损失了整整20分钟,所以我希望能为其他人节省时间。由于要格式化字符串,我必须使用例如分数:%.2f%%。2%字符,附加到格式。在这种情况下,上述所有操作都不起作用。我不建议将%替换为unicode字符。它们是编码的,但不是转义的。如果在语句中有参数,比如百分比值:%1$d\u0025,并调用“int testValue=29;String text=getResources().getString(R.String.test,testValue);”应用程序将只会崩溃。。。改为使用%%(或最终值%1$d\u0025\u0025会起作用,但非常脏)您的回复有点晚,但无论如何还是要感谢:d如果我很快加入Android开发,我可能会测试您的解决方案,但考虑到我已经尝试了
%\%%
肯定比
\u0025
好……好吧……也许不是“肯定的”。)
%%
是唯一适合我的。这是我的最后一个字符串
(%1$s%%佣金)
,例如,在
(2.56%佣金)
%中,它肯定不是XML中的保留字符;此内容限制特定于Android资源文件。谢谢,节省我的时间
<item><![CDATA[100% foo 40%]]></item>