String类与StirngBuilder、StringBuffer的区别

1.String类
在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串。在String类中常用的方法有:

  • 1.charAt(int index)返回 char指定索引处的值。
  • 2.codePointAt(int index)返回指定索引处的字符(Unicode代码点(ASCII值))。
  • 3.concat(String str)将指定的字符串连接到该字符串的末尾。
  • 4.contains(CharSequence s)当且仅当此字符串包含指定的char值序列时才返回true。
  • 5.equals(Object anObject)将此字符串与指定对象进行比较。
  • 6.isEmpty()返回 true如果,且仅当 length()为 0 。
  • 7.length()返回此字符串的长度。
  • 8.replace(char oldChar, char newChar)返回 使用newChar替换oldChar后的字符串 。
  • 9.split(String regex)将此字符串分割为给定的 regular expression的匹配,返回分割后的字符串数组。
  • 10.substring(int beginIndex)(截取)返回一个字符串,该字符串是此字符串的子字符串。
  • 11.toCharArray()将此字符串转换为新的字符数组(char[])。
  • 12.trim()返回一个字符串,其值为此字符串,并删除任何前导和尾随空格。
  • 13.endsWith(String suffix)测试此字符串是否以指定的后缀结尾。
  • 14.startsWith(String prefix)测试此字符串是否以指定的前缀开头。
/** java String 类的学习方法
 * 常用方法
 * 1.charAt(int index)返回 char指定索引处的值。
 * 2.codePointAt(int index)返回指定索引处的字符(Unicode代码点(ASCII值))。
 * 3.concat(String str)将指定的字符串连接到该字符串的末尾。
 * 4.contains(CharSequence s)当且仅当此字符串包含指定的char值序列时才返回true。
 * 5.equals(Object anObject)将此字符串与指定对象进行比较。
 * 6.isEmpty()返回 true如果,且仅当 length()为 0 。
 * 7.length()返回此字符串的长度。
 * 8.replace(char oldChar, char newChar)返回 使用newChar替换oldChar后的字符串 。
 * 9.split(String regex)将此字符串分割为给定的 regular expression的匹配,返回分割后的字符串数组。
 * 10.substring(int beginIndex)(截取)返回一个字符串,该字符串是此字符串的子字符串。
 * 11.toCharArray()将此字符串转换为新的字符数组(char[])。
 * 12.trim()返回一个字符串,其值为此字符串,并删除任何前导和尾随空格。
 * 13.endsWith(String suffix)测试此字符串是否以指定的后缀结尾。
 * 14.startsWith(String prefix)测试此字符串是否以指定的前缀开头。
 */
public class StringStudys {
    public static void main(String[] args) {
        String str = "abc";
        System.out.println(str.charAt(0));// a
        System.out.println(str.codePointAt(0)); // 97
        System.out.println(str.concat("d")); //abcd
        System.out.println(str.contains("a"));// true
        System.out.println(str.endsWith("bc")); // true
        System.out.println(str.isEmpty()); // false
        System.out.println(str.replace("c","d"));//abd
        String[] strings = str.split("b");
        Arrays.stream(strings).forEach(System.out::print);//ac
        System.out.println(str.substring(1));//bc
        System.out.println(str.toCharArray()); //abc
        System.out.println(str.trim());//abc
    }
}

2. StirngBuilder、StringBuffer类
StirngBuilder、StringBuffer是字符串变量类(字符串缓冲区),当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。以StirngBuilder为例,创建StirngBuilder对象的方法有两种,一种new一个空参数对象,另一种new一个值为参数(String)的对象,同时提供了向String转换的toString方法。
String类的底层是一个final修饰的char[] 是不可变的,虽然String可以通过 + 进行连接,但其本质是创建了新的对象,对于存在连接次数多的情况,效率很是低下。而StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。所以在有较多的字符串拼接的时候,推荐使用StirngBuilder、StringBuffer来实现,以提高效率。
StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值