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

Kotlin中如何检查字符串资源是否含占位符并完成替换?

处理Android字符串资源占位符替换

实现方案

Android原生的getString()方法自带占位符处理能力,无需手动判断字符串是否包含占位符,直接调用对应重载方法即可完成替换。

第一步:修正字符串资源命名

注意示例中所有字符串的name属性重复,实际开发中需给每个字符串设置唯一名称,修改后的strings.xml如下:

<!-- res/values/strings.xml -->
<string name="no_placeholder">Its a poem right?</string>
<string name="indexed_placeholder">We are %1$s to see the queen, are you %1$s</string>
<string name="simple_placeholder">where are we %s</string>

第二步:Fragment中完成占位符替换

在Fragment内使用getString()的重载方法,传入变量going替换占位符:

// Fragment中的代码
val going = "goin"

// 无占位符的字符串,直接获取
val text1 = getString(R.string.no_placeholder)

// 带索引占位符的字符串,传入参数替换
val text2 = getString(R.string.indexed_placeholder, going)

// 带简单占位符的字符串,同样传入参数替换
val text3 = getString(R.string.simple_placeholder, going)

关键说明

  • getString(int resId, Object... formatArgs)会自动识别%s、%1$s等格式占位符,按顺序用传入的参数完成替换;无占位符时直接返回原字符串。
  • 必须保证每个字符串资源的name属性唯一,否则会触发编译错误。

内容的提问来源于stack exchange,提问作者Oyindamola Gideon Olarewaju

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 19:25:55