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

如何在格式化字符串资源时使用integer类型参数?

解决方案

Android字符串资源的格式化占位符遵循Java Formatter语法规则,占位符末尾的字符代表预期接收的参数类型:s对应字符串、f对应浮点数、d对应十进制整数。你当前用的%1$s是字符串类型占位符,要适配整数参数只需调整占位符后缀即可:

步骤1:修改字符串资源定义

将占位符的s后缀替换为d:

<string name="temperature">%1$d °C</string>

步骤2:代码中传入整数参数

  • Kotlin 调用示例:
val temperature = 26
val formattedTemp = getString(R.string.temperature, temperature)
  • Java 调用示例:
int temperature = 26;
String formattedTemp = getString(R.string.temperature, temperature);

兼容备选方案

如果该字符串资源有其他业务场景需要传入字符串参数,不方便修改原有占位符定义,也可以将整数转为字符串后传入原有占位符,不影响使用:

// 仅作为兼容方案,优先推荐修改占位符匹配参数类型
val formattedTemp = getString(R.string.temperature, temperature.toString())

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 03:39:02