我有这样的字符串:操纵以下字符串的最佳方法是什么?
"{0}_something_{1}-{2}-something"
,我需要这些字符串转换为
"%s_something_%s-%s-something"
什么是做到这一点的最好方法是什么?
我有这样的字符串:操纵以下字符串的最佳方法是什么?
"{0}_something_{1}-{2}-something"
,我需要这些字符串转换为
"%s_something_%s-%s-something"
什么是做到这一点的最好方法是什么?
我会使用正则表达式。
String data = "{0}something{1}-{2}-something";
System.out.println(data.replaceAll("\\{.*?\\}", "%s_"));
输出:
%s_something%s_-%s_-something
编辑: 一个RegExp,只有当有仅是数字{
和}
之间
System.out.println(data.replaceAll("\\{\\d+\\}", "%s_"));
myString.replaceAll("\\{\\d\\}", "%s")
如果你想取代创造Ë一个Java格式字符串,那么你应该可能保留这些替代品的顺序,否则像foo {2} bar {1} baz {0}
字符串将带来问题:
myString.replaceAll("\\{(\\d)\\}", "%$1$$s");
考虑使用的MessageFormat。 - http://download.oracle.com/javase/6/docs/api/java/text/MessageFormat.html
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
有什么逻辑吗?何时添加下划线? – Fortega
下划线没有逻辑。只用%s替换所有的{0},{1}。我忘了string.replce与正则表达式。我在这里得到了我的答案。谢谢 – AAaa
然后将你的例子替换为“我应该如何用'%s'替换所有'{0] ... {1} ...'等实例。 – mre