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

如何在Android中编程创建字符串占位符并完成赋值

手动填充字符串占位符的实现方案

直接使用JDK提供的String.format()方法即可完成需求,不需要依赖resources.getString()的资源ID参数。实际上系统resources.getString(@StringRes int id, Object... formatArgs)的内部逻辑,就是先根据ID读取字符串模板,再调用String.format填充参数,二者效果完全一致。


Kotlin 代码示例

基础用法

// 自定义带占位符的字符串模板
val template = "Stranka sa zatvori za %d s"
// 按顺序传入对应类型的参数完成填充
val formattedStr = String.format(template, remainingSeconds)
// 赋值给控件
snackbarTextView.text = formattedStr

本地化适配写法(推荐)

如果应用需要适配多语言,建议传入当前系统Locale,避免不同地区的数字、时间格式出现异常:

import java.util.Locale

val template = "Stranka sa zatvori za %d s"
val formattedStr = String.format(Locale.getDefault(), template, remainingSeconds)
snackbarTextView.text = formattedStr

Java 代码示例

String template = "Stranka sa zatvori za %d s";
String formattedStr = String.format(template, remainingSeconds);
snackbarTextView.setText(formattedStr);

// 本地化适配写法
// String formattedStr = String.format(Locale.getDefault(), template, remainingSeconds);

注意事项

  • 占位符规则和资源字符串中使用的规则完全一致:%d对应整数、%s对应字符串、%f对应浮点数
  • 支持带位置索引的占位符,例如模板写为"用户%1$s的等级为%2$d",可以灵活调整参数顺序,适配多语言翻译场景
  • 传入参数的数量、类型需要和占位符一一对应,否则会抛出格式化异常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 05:12:02