StringBuilder的append()
| String s1 = "ha"; |
| String s2 = "xi"; |
| |
| System.out.println(s1 + s2); |
| String s1 = "ha"; |
| |
| String s2 = s1 + ""; |
| System.out.println(s2); |
- 循环体内,拼接字符串最好使用 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(); |
| |
| char buf[] = Arrays.copyOf(value, len + otherLen); |
| |
| 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); |
| |
| 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 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步