🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## [字符串操作](https://lingcoder.gitee.io/onjava8/#/book/18-Strings?id=%e5%ad%97%e7%ac%a6%e4%b8%b2%e6%93%8d%e4%bd%9c) 以下是`String`对象具备的一些基本方法。重载的方法归纳在同一行中: | 方法 | 参数,重载版本 | 作用 | | --- | --- | --- | | 构造方法 | 默认版本,`String`,`StringBuilder`,`StringBuffer`,`char`数组,`byte`数组 | 创建`String`对象 | | `length()` | | `String`中字符的个数 | | `charAt()` | `int`索引 | 获取`String`中索引位置上的`char` | | `getChars()`,`getBytes()` | 待复制部分的开始和结束索引,复制的目标数组,目标数组的开始索引 | 复制`char`或`byte`到一个目标数组中 | | `toCharArray()` | | 生成一个`char[]`,包含`String`中的所有字符 | | `equals()`,`equalsIgnoreCase()` | 与之进行比较的`String` | 比较两个`String`的内容是否相同。如果相同,结果为`true` | | `compareTo()`,`compareToIgnoreCase()` | 与之进行比较的`String` | 按词典顺序比较`String`的内容,比较结果为负数、零或正数。注意,大小写不等价 | | `contains()` | 要搜索的`CharSequence` | 如果该`String`对象包含参数的内容,则返回`true` | | `contentEquals()` | 与之进行比较的`CharSequence`或`StringBuffer` | 如果该`String`对象与参数的内容完全一致,则返回`true` | | `isEmpty()` | | 返回`boolean`结果,以表明`String`对象的长度是否为0 | | `regionMatches()` | 该`String`的索引偏移量,另一个`String`及其索引偏移量,要比较的长度。重载版本增加了“忽略大小写”功能 | 返回`boolean`结果,以表明所比较区域是否相等 | | `startsWith()` | 可能的起始`String`。重载版本在参数中增加了偏移量 | 返回`boolean`结果,以表明该`String`是否以传入参数开始 | | `endsWith()` | 该`String`可能的后缀`String` | 返回`boolean`结果,以表明此参数是否是该字符串的后缀 | | `indexOf()`,`lastIndexOf()` | 重载版本包括:`char`,`char`与起始索引,`String`,`String`与起始索引 | 如果该`String`并不包含此参数,就返回-1;否则返回此参数在`String`中的起始索引。`lastIndexOf`()是从后往前搜索 | | `matches()` | 一个正则表达式 | 返回`boolean`结果,以表明该`String`和给出的正则表达式是否匹配 | | `split()` | 一个正则表达式。可选参数为需要拆分的最大数量 | 按照正则表达式拆分`String`,返回一个结果数组 | | `join()`(Java8引入的) | 分隔符,待拼字符序列。用分隔符将字符序列拼接成一个新的`String` | 用分隔符拼接字符片段,产生一个新的`String` | | `substring()`(即`subSequence()`) | 重载版本:起始索引;起始索引+终止索引 | 返回一个新的`String`对象,以包含参数指定的子串 | | `concat()` | 要连接的`String` | 返回一个新的`String`对象,内容为原始`String`连接上参数`String` | | `replace()` | 要替换的字符,用来进行替换的新字符。也可以用一个`CharSequence`替换另一个`CharSequence` | 返回替换字符后的新`String`对象。如果没有替换发生,则返回原始的`String`对象 | | `replaceFirst()` | 要替换的正则表达式,用来进行替换的`String` | 返回替换首个目标字符串后的`String`对象 | | `replaceAll()` | 要替换的正则表达式,用来进行替换的`String` | 返回替换所有目标字符串后的`String`对象 | | `toLowerCase()`,`toUpperCase()` | | 将字符的大小写改变后,返回一个新的`String`对象。如果没有任何改变,则返回原始的`String`对象 | | `trim()` | | 将`String`两端的空白符删除后,返回一个新的`String`对象。如果没有任何改变,则返回原始的`String`对象 | | `valueOf()`(`static`) | 重载版本:`Object`;`char[]`;`char[]`,偏移量,与字符个数;`boolean`;`char`;`int`;`long`;`float`;`double` | 返回一个表示参数内容的`String` | | `intern()` | | 为每个唯一的字符序列生成一个且仅生成一个`String`引用 | | `format()` | 要格式化的字符串,要替换到格式化字符串的参数 | 返回格式化结果`String` | 从这个表可以看出,当需要改变字符串的内容时,`String`类的方法都会返回一个新的`String`对象。同时,如果内容不改变,`String`方法只是返回原始对象的一个引用而已。这可以节约存储空间以及避免额外的开销。 本章稍后还将介绍正则表达式在`String`方法中的应用。