You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android多语言开发:阿拉伯语格式化字符串参数报错求助

解决阿拉伯语带参数字符串格式化的IDE报错问题

嘿,这个问题我之前处理过!你的问题出在阿拉伯语字符串资源里的占位符格式完全写反了,不符合String.format的语法规则,所以IDE才会抛出那个错误提示。

你看,英文资源里的%1$s是正确的写法:%开头,接着是参数序号,然后是$,最后是参数类型(s表示字符串)。但你写的阿拉伯语资源里把顺序搞乱了,写成了s$1%和s%2$——这种格式系统根本识别不了,自然会报错。

哪怕是阿拉伯语这种从右到左(RTL)的语言,字符串格式化的占位符语法和英文是完全一致的,不需要因为排版方向颠倒符号顺序。你只需要把阿拉伯语资源改成下面的正确写法就行:

<string name="text_1">%1$s نقطة إلى %2$s</string>

为什么你说1、3、4号参数正常?大概率是那些参数的占位符你写对了(比如用了%1$s这种正确格式),只有2号参数写成了错误的s%2$才触发了报错。改成标准的%n$s格式后,IDE的格式检查就会通过,调用String.format的时候也能正常替换参数,而且系统会自动根据阿拉伯语的RTL特性调整最终的显示排版,完全不用你手动调整占位符的位置。

你可以试试把这个修正后的资源放到项目里,报错应该就消失啦!

内容的提问来源于stack exchange,提问作者ghita

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:27:18