🛸~~ 🚁🚁🚁🛩️🛩️🛩️~|

n1ce2cv

园龄:5年2个月粉丝:4关注:1

字符串拼接

StringBuilder的append()

String s1 = "ha";
String s2 = "xi";
// 编译的时候被替换成 new StringBuilder(s1).append(s2).toString();
System.out.println(s1 + s2);
String s1 = "ha";
// +号也被编译成了append()
String s2 = s1 + "";
System.out.println(s2);
// 编译器在编译阶段就将其解析为了字符串常量haxi
String s = "ha" + "xi";
  • 循环体内,拼接字符串最好使用 StringBuilder 的 append() 方法,而不是 + 号操作符。循环体内如果用 + 号操作符的话,就会产生大量的 StringBuilder 对象,不仅占用了更多的内存空间,还会让 Java 虚拟机不停的进行垃圾回收,从而降低了程序的性能
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 10; i++) {
String s1 = "ha";
String s2 = "xi";
sb.append(s1).append(s2);
}
System.out.println(sb);

String的concat

String s1 = "ha";
String s2 = "xi";
System.out.println(s1.concat(s2));
public String concat(String str) {
if (str.isEmpty()) {
return this;
}
int len = value.length;
int otherLen = str.length();
// 将原字符串的字符数组 value 复制到变量 buf 数组中
char buf[] = Arrays.copyOf(value, len + otherLen);
// 把拼接的字符串 str 复制到字符数组 buf 中
str.getChars(buf, len);
// 返回新的字符串对象
return new String(buf, true);
}
  • concat() 方法在遇到字符串为 null 的时候,会抛出 NullPointerException,而“+”号操作符会把 null 当做是“null”字符串来处理

String的join()

String s1 = "ha";
String s2 = "xi";
String s3 = "he";
// 第一个参数为字符串连接符
System.out.println(String.join("-", s1, s2, s3));
public static String join(CharSequence delimiter, CharSequence... elements) {
Objects.requireNonNull(delimiter);
Objects.requireNonNull(elements);
// Number of elements not likely worth Arrays.stream overhead.
StringJoiner joiner = new StringJoiner(delimiter);
for (CharSequence cs: elements) {
joiner.add(cs);
}
return joiner.toString();
}

本文作者:n1ce2cv

本文链接:https://www.cnblogs.com/sprinining/p/18301344

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   n1ce2cv  阅读(9)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起