用格式字符串替换String资源的一部分

时间:2016-05-31 14:29:23

标签: android

无论如何用格式字符串替换部分字符串资源。 例如:我有一个故事:  “在你研究土星环的回程中,你会听到一个似乎来自火星表面的遇险信号。这很奇怪,因为多年来没有一个殖民地。甚至更陌生,它叫你的名字: “帮助我, %1 $ s ,你是我唯一的希望。\”“,

这存储在字符串资源键中。 我有输入 用户名 ,我想用此用户名替换上面的字符串 %1 $ s 。我该怎么办?

3 个答案:

答案 0 :(得分:1)

假设您有资源

R.string.template_string

On your return trip from studying Saturn's rings, you hear a distress signal that seems to be coming from the surface of Mars. It's strange because there hasn't been a colony there in years. Even stranger, it's calling you by name: \"Help me, %s, you're my only hope.\"

在代码中,您可以将其格式化为

String username = "Bob"
String result = String.format(getResources().getString(R.string.template_string), username);

警告:

您的模板不正确。将%1$s替换为%s 1$

答案 1 :(得分:0)

尝试测试此代码:

String.format(getString(R.string.desc), username)

答案 2 :(得分:0)

在您的代码中,找到包含用户名的EditText,并按以下方式设置字符串资源的格式:

EditText username = (EditText) findViewById(R.id.username);
String formattedString = String.format(
        getString(R.string.story), // your string resource
        username.getText().toString() // input from user
);