在Java中添加字符到字符串

时间:2020-02-23 14:36:07  来源:igfitidea点击:

在本教程中,我们将看到如何在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