Java中String类的concat方法
来源:互联网 发布:女性情趣用品淘宝 编辑:程序博客网 时间:2024/06/01 10:27
Java中String类的concat方法
在了解concat()之前,首先需要明确的是String的两点特殊性。
- 长度不可变
- 值不可变
这两点从源码中对String的声明可以体现:
private final char[] value ;
其中final对应值的不可更改的特性;而char[]对应String是长度不可更改的特性。
因此,当我们对String进行拼接后,产生的应该是一个新的字符串。
对于这一点,我们可以对concat()进行源码的解读得出同样的结论。
@param str 需要拼接到原字符串的新串@param otherlen 新串的长度@param len 原字符串的长度@param buf 存放最终字符串的字符数组(长度为len+otherlen)@method copyOf(char[] original, int newLength) 复制指定的数组,截取或用 null 字符填充(如有必要),以使副本具有指定的长度。 @method getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) 将字符从此字符串复制到目标字符数组。public String concat(String str) { int otherLen = str.length(); if (otherLen == 0) { return this; } int len = value.length; char buf[] = Arrays.copyOf(value, len + otherLen); str.getChars(buf, len); return new String(buf, true); }
源码分析:
concat()方法首先获取拼接字符串的长度,判断这个字符串长度是否为0(判断这个用来拼接的字符串是不是空串),如果是就返回原来的字符串(等于没有拼接);否则就获取源字符串的长度,创建一个新的char[]字符数组,这个字符数组的长度是拼接字符串的长度与源字符串的长度之和,通过Arrays类的copyOf方法复制源数组,然后通过getChars方法将拼接字符串拼接到源字符串中,然后将新串返回。
API中也对这个方法进行了解释:
- 如果参数字符串的长度为 0,则返回此 String 对象。
- 否则,创建一个新的 String对象,用来表示由此 String 对象表示的字符序列和参数字符串表示的字符序列连接而成的字符序列。
综上,当对String对象进行拼接时,会创建一个新的字符串来存储新串。
阅读全文
1 0
- Java中String类的concat方法
- java中String类concat方法和+的区别
- java中string类concat方法和+的区别
- Java面试题:String类的concat方法
- Java:concat 方法(String)
- java基础—String类中的concat()方法
- String.Concat 方法
- String.Concat 方法
- java中java.lang.String.concat(String str)使用注意
- string.Concat的使用
- javascript中数组的concat()方法
- javascript中数组的concat()方法
- javascript-string类型的方法(match,replace,split,concat+join)
- java.lang.String +concat(s1: String): String
- JS中string方法中常用方法之二:String.prototype.concat()
- java中String类的方法
- Java 中 String 类方法的使用
- java中String类的常用方法
- 函数指针和指针函数的区别
- 排序列表转换为二分查找树-LintCode
- JAVA虚拟机系列(六)
- 刨根问底KVC
- UVA1391【LA3713】 经典2-SAT
- Java中String类的concat方法
- MyBatis的resultMap简介
- 基于freemarker在本地生成word(.doc)文档,只看这一篇就够了
- Java学习day5
- Spring框架03
- 基于邻接矩阵的图的各种遍历
- NIS安装配置备忘
- JAVA虚拟机系列(七)
- 计算机系统结构-延迟转移