我在Java中有任何utils方法可以让我用另一个字符串包围一个字符串吗?类似的东西:
surround("hello","%");
将返回"%hello%"
我只需要一种方法,因此代码会更好,然后添加前缀和后缀。如果没有必要,我也不想拥有自定义的utils类。
答案 0 :(得分:7)
String.format可用于此目的:
String s = String.format("%%%s%%", "hello");
答案 1 :(得分:5)
不,但您始终可以创建一个方法来执行此操作:
public String surround(String str, String surroundingStr) {
StringBuffer buffer = new StringBuffer();
buffer.append(surroundingStr).append(str).append(surroundingStr);
return buffer.toString();
}
您还有另一种方法,但如果您想获得更好的表现,请不要这样做: -
public String surround(String str, String surroundingStr){
return surroundingStr + str + surroundingStr;
}
众所周知,Java中的字符串是不可变的。当您将字符串连续三次时,除了原始字符串str
和surroundingStr
之外,它还会创建两个新的字符串对象。因此总共创建了4个字符串对象:
1. str
2. surroundingStr
3. surroundingStr + str
4. (surroundingStr + str) + surroundingStr
创建对象确实需要时间。因此,从长远来看,第二种方法会降低您在空间和时间方面的表现。因此,您可以选择使用哪种方法。
由于+
运算符的结束字符串在后台使用StringBuffer
。因此,如果Java版本为1.4或更高版本,则使用第二种方法不是问题。但是,如果你想整理字符串是一个循环,请小心。
使用StringBuffer
的{{1}}。
答案 2 :(得分:3)
不是我所知道的,但正如已经评论过的那样,它是你自己可以写的一行代码。
private String SurroundWord(String word, String surround){
return surround + word + surround;
}
请注意,这将返回一个New String对象,而不是编辑原始字符串。
答案 3 :(得分:2)
创建一个新方法:
public String surround(String s, String surr){
return surr+s+surr;
}
答案 4 :(得分:2)
测试以下内容并返回%hello%
public static void main (String[] args) throws java.lang.Exception
{
System.out.println(surround("hello", "%"));
}
public static String surround(String s, String sign) {
return sign + s + sign;
}
答案 5 :(得分:0)
StringUtils.wrap(str,wrapWith)就是你要找的东西。 如果apache common utils已经是依赖项的一部分,那么你可以使用它。否则正如其他人已经提到过最好添加到您的基地。没什么大不了的。