[英]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
考虑使用MessageFormat。 -http://download.oracle.com/javase/6/docs/api/java/text/MessageFormat.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.