如何为给定字符串中的每个单词添加前缀
How to add prefix to each word in a given string
我想为给定字符串中的每个单词添加前缀。我的代码是:-
StringBuilder strColsToReturns = new StringBuilder();
String strPrefix = "abc.";
strColsToReturns.append(String.format(" %sId, %sname, %stype,", strPrefix, strPrefix, strPrefix));
这对于小字符串来说很好,但我有一个像这样的非常大的静态字符串。因此,这种添加字符串前缀的方法看起来很繁琐。有没有其他复杂的方法来实现这个。
您可以使用 replaceAll(regex, replacement)
。作为正则表达式,我们可能想要 select 有
的地方
- space 或它之前的字符串开头
- 和非space之后。
(我们可以在这里使用look-around机制)
所以像这样的东西应该可以工作:
String replaced = originalString.replaceAll("(?<=\s|^)(?=\S)", "abc.");
但是如果 replacement
可以包含 $
或 \
个字符,您将需要使用 \
或 Matcher.quoteReplacement(replacement)
方法对它们进行转义。
String originalString = "foo bar baz";
String replaced = originalString.replaceAll("(?<=\s|^)(?=\S)", Matcher.quoteReplacement("abc."));
System.out.println(replaced);
输出:abc.foo abc.bar abc.baz
我想为给定字符串中的每个单词添加前缀。我的代码是:-
StringBuilder strColsToReturns = new StringBuilder();
String strPrefix = "abc.";
strColsToReturns.append(String.format(" %sId, %sname, %stype,", strPrefix, strPrefix, strPrefix));
这对于小字符串来说很好,但我有一个像这样的非常大的静态字符串。因此,这种添加字符串前缀的方法看起来很繁琐。有没有其他复杂的方法来实现这个。
您可以使用 replaceAll(regex, replacement)
。作为正则表达式,我们可能想要 select 有
- space 或它之前的字符串开头
- 和非space之后。
(我们可以在这里使用look-around机制)
所以像这样的东西应该可以工作:
String replaced = originalString.replaceAll("(?<=\s|^)(?=\S)", "abc.");
但是如果 replacement
可以包含 $
或 \
个字符,您将需要使用 \
或 Matcher.quoteReplacement(replacement)
方法对它们进行转义。
String originalString = "foo bar baz";
String replaced = originalString.replaceAll("(?<=\s|^)(?=\S)", Matcher.quoteReplacement("abc."));
System.out.println(replaced);
输出:abc.foo abc.bar abc.baz