Java里连接字符串的几种方式以及优缺点

Java里连接字符串的几种方式以及优缺点

字符串连接操作在Java程序很常见,这篇文章将会总结归纳字符串连接的四种方式

  • + 连接

  • String.concat()

  • String.join()

  • StringBuilder

  • StringBuffer

使用+号连接

class Helloworld {
   public static void main(String[] args) {
    // 现在有两个字符串, Hello与World!, 需要通过程序得到
    // Hello World!
    String str1 = "Hello ";
    String str2 = "World!";
    String str3 = str1 + str2;
    System.out.println(str3);
   }
}

结果: Hello World!

优点:

  • 操作简单

缺点:

  • 因为每次使用都会新生成一个String对象来负载新的字符串, 所以效率很低

适用场景

  • 简单字符串链接

String.join

class Helloworld {
    public static void main(String[] args) {
     // 现在有两个字符串, Hello与World!, 需要通过程序得到
     // Hello World!
     String str1 = "Hello ";
     String str2 = "World!";
     System.out.println(String.join(" ", str1, str2));
    }
 }

结果: Hello World!

优点:

  • 操作简单,方便

缺点:

  • 它依赖于StringJoiner, 而StringJoiner依赖于StringBuilder

String.concat

public class SringC {
    public static void main(String[] args) {
        String test = "Hello ";
        String test1  = test.concat("World!");
        System.out.println(test1);
    }
}

结果: Hello World!

优点:

  • 操作简单

缺点:

  • 暂时未发现

适用场景

  • 简单字符串链接

StringBuilder

public class StringB {
    public static void main(String[] args) {
        StringBuilder builder = new StringBuilder();
        builder.append("Hello ");
        builder.append("World!");
        System.out.println(builder.toString());
    }
}

结果: Hello World!

优点:

  • 无需要每次生成String对象,效率高

缺点:

  • 暂时未发现

适用场景

  • 比较大的字符串构建,比如从文本里读取

StringBuffer

public class SringF {
    public static void main(String[] args) {
        StringBuffer buffer = new StringBuffer();
        buffer.append("Hello ");
        buffer.append("World!");
        System.out.println(buffer.toString());
    }
}

结果: Hello World!

优点:

  • 无需要每次生成String对象,效率高(效率低于StringBuilder方式)

缺点:

  • 暂时未发现

适用场景

  • 比较大的字符串构建,比如从文本里读取

  • 支持多线程创建

其他

Concatenating Strings In Java

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值