我有一个像some text %@ some text %@ some text
这样的字符串
其中%@
是obj-c格式。我需要将此字符串转换为some text %1$s some text %2$s some text
,这是一个带有格式的android资源。
我怎么能用groovy正则表达式来做呢?
答案 0 :(得分:2)
你可以这样做:
def s = 'some text %@ some text %@ some text'
def newS = 1.with { idx -> s.replaceAll(/%@/, { v -> "%${idx++}\$s" }) }
给出了输出:
'some text %1$s some text %2$s some text'
答案 1 :(得分:1)
你有一个字符串some text %@ some text %@ some text
。
您可以使用stringtokenizer来划分该字符串:
例如:
String myString= "Hello world"
//we can divide my string using space as reference on this way.
StringTokenizer tokens = new StringTokenizer(myString, " ");
//here hello
String SplitFirst = tokens.nextToken();
//here world
String SplitSecond = tokens.nextToken();
第二个例子:
String myString= "Hello:world:everybody"
//we can divide my string using `:` as reference on this way.
StringTokenizer tokens = new StringTokenizer(myString, ":");
//here hello
String SplitFirst = tokens.nextToken();
//here world
String SplitSecond = tokens.nextToken();
//here everybody
String SplitThird = tokens.nextToken();
然后在您的问题上,您可以执行相同的过程,但使用作为参考%@
如果您有不同的字符串,可以使用replace
更改%@
:
例如
String newString = string.replace("%@", "%1$s");
以后你可以连接新字符串:
同样, 例如
String NewConcatenateString= SplitFirst + SplitSecond + SplitThird......