在Java中添加字符到字符串
在本教程中,我们将看到如何在Java中添加字符到字符串。
有多种方法可以为字符串添加字符。
将字符添加到字符串的开始
我们可以在字符串开始时添加字符 +运算符。
char startChar='i'; String blogName = "giftidea"; String cblogName = startChar + blogName;
将字符添加到字符串的末尾
我们可以在字符串开始时添加字符 +运算符。
char endChar ='a'; String blogNameWOG = "igiftide"; String blogNameWG = blogNameWOG + endChar;
进一步阅读
以下是在字符串的开始和结尾处添加字符的完整程序。
package org.arpit.theitroad;
public class AddCharacterStartEndMain {
public static void main(String[] args) {
char startChar='i';
String blogName = "giftidea";
String cblogName = startChar + blogName;
System.out.println(cblogName);
char endChar ='a';
String blogNameWOG = "igiftide";
String blogNameWG = blogNameWOG + endChar;
System.out.println(blogNameWG);
}
}
输出:
theitroad theitroad
正如我们所看到的,我们在字符串 'giftidea'之前添加了 'i', 在 'igiftide'后面添加了a 。
在给定的帖子中添加字符
有几种方法可以在给定位置添加添加字符到串。
使用StringBuffer.
我们可以使用 StringBuffer'sinsert()在给定位置将字符添加到字符串的方法。
让我们在一个例子的帮助下看看。
package org.arpit.theitroad;
public class AddCharacterToStringAnyPosition {
public static void main(String[] args) {
String blogName = "igifidea";
char t ='t';
String cblogName = addCharToString(blogName,t,4);
System.out.println(cblogName);
}
public static String addCharToString(String str, char c, int pos) {
StringBuilder stringBuilder = new StringBuilder(str);
stringBuilder.insert(pos, c);
return stringBuilder.toString();
}
}
正如我们所看到的,我们在第4个位置添加了字母t。
如果您想要线程安全的代码,那么应该使用StringBuffer而不是StringBuilder。
使用子字符串
我们还可以使用String的子字符串方法在给定位置添加字符到字符串。
让我们在一个例子的帮助下看看。
package org.arpit.theitroad;
public class AddCharacterToStringAnyPosition {
public static void main(String[] args) {
String blogName = "igifidea";
char t ='t';
String cblogName = addCharToStringUsingSubString(blogName,t,4);
System.out.println(cblogName);
}
public static String addCharToStringUsingSubString(String str, char c, int pos) {
return str.substring(0, pos)+ c +str.substring(pos);
}
}
解释
- 在positon之前获得一个子字符串
- 添加字符
- 在positon之后获得一个子字符串
虽然这看起来很简单且可读的解决方案,但使用这种方法存在缺点。
由于我们已经知道字符串在Java中是不可变的。
每个子字符串调用都会创建新的字符串对象。
当我们使用时 +运算符要连接字符串,它内部也创建了StringBuffer对象。
如果我们需要多次调用此方法,那么这可能导致频繁的垃圾收集,因为由于临时对象,堆内存将填充更快。
使用apache common lang3
我们也可以使用apache common的 StringUtils要在此处添加字符串的字符,这是我们需要为Apache公共Lang3添加的依赖项 pom.xml。
</p>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.9</version>
</dependency>
<p>
这是一个例子:
package org.arpit.theitroad;
import org.apache.commons.lang3.StringUtils;
public class AddCharacterToStringAnyPosition {
public static void main(String[] args) {
String blogName = "igifidea";
char t ='t';
String cblogName = addCharToStringUsingApache(blogName,t,4);
System.out.println(cblogName);
}
public static String addCharToStringUsingApache(String str, char c, int pos) {
return StringUtils.overlay(str,""+c, pos, pos);
}
}
正如我们所看到的,我们使用过 StringUtilss overlay()在给定位置将字符添加到字符串的方法。 StringUtils.overlay(str, overlay, start, end)采取四个论点。 str:Orignal String. overlay:我们要添加的字符串 start:开始位置 end:结束位置
由于我们只想添加一个字符,开始和结束位置是相同的 pos。

