我正在从事android项目,但是我从服务器检索了一个包含所有本地化字符串的.xml
文件。我遇到了一个问题,因为当字符串可以包含一个参数时,该参数将放在双括号中,例如:
您的帐户中有美元
我不能使用常规的String.format()
函数。我真的不知道该如何解决这个问题,我应该创建一个自定义格式化程序吗?
编辑:字符串可以有多个参数
Thx
答案 0 :(得分:2)
使用String.replace()
代替String.format()。
您还可以替换多个参数,例如
String s = "{{0}} is friend with form.reset()
";
s = s.replace("{{0}}","ABC");
s = s.replace("TypeError: form.reset is not a function
","PQR");
答案 1 :(得分:1)
一种更优雅的方法是使用正则表达式:WindowsIdentity
,这是我在public static WindowsIdentity GetWindowsIdentityBySid(string sid)
{
using (var user =
UserPrincipal.FindByIdentity(
UserPrincipal.Current.Context,
IdentityType.Sid,
sid
))
{
return user == null
? null
: new WindowsIdentity(user.UserPrincipalName);
}
}
中使用的。
这也将允许您提取值。
{{((.*?)*?)}}
要创建具有更多参数的函数,请执行以下操作:
c#
完整的工作功能可能是这样的(未测试):
Pattern pattern = Pattern.compile("{{((.*?)*?)}}");
Matcher matcher = pattern.matcher(input);
while (matcher.find()) {
// Other stuff, like extracting values
String value = matcher.group(1)
// Then you can just String.replace the matches.
}