繁体   English   中英

操纵以下字符串的最佳方法是什么?

[英]what is the best way to manipulate the following string?

我有像这样的字符串:

"{0}_something_{1}-{2}-something"

我需要将这些字符串转换为

"%s_something_%s-%s-something"

做这个的最好方式是什么?

myString.replaceAll("\\{\\d\\}", "%s")

如果您尝试创建Java格式的字符串,则可能应该保留这些替换的顺序,否则,诸如foo {2} bar {1} baz {0}类的字符串将带来问题:

myString.replaceAll("\\{(\\d)\\}", "%$1$$s");

我会用一个正则表达式。

String data = "{0}something{1}-{2}-something";
System.out.println(data.replaceAll("\\{.*?\\}", "%s_"));

输出:

%s_something%s_-%s_-something

编辑:一个正则表达式,仅当{}之间只有数字时才替换

System.out.println(data.replaceAll("\\{\\d+\\}", "%s_"));
String result = MessageFormat.format("{0}something{1}-{2}-something", "%s_", "_%s", "%s");
String str      =   "{0}something{1}-{2}-something";
String clean    =   str.replaceAll("(\\{\\d+\\}-?)", "%s_");
System.out.println(clean); // outputs: %s_something%s_%s_something

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM