java学习笔记11

本文详细介绍了Java中的字符串类,包括String的初始化、常见操作,如获取、转换、替换和判断,以及StringBuffer和StringBuilder类的特点和使用场景。字符串在Java中是不可变的,而StringBuffer和StringBuilder提供了可变的字符串操作,适用于需要频繁修改字符串的场合。其中,StringBuffer是线程安全的,适合多线程环境,StringBuilder则在单线程环境下性能更优。
摘要由CSDN通过智能技术生成

20. 字符串类

  • 字符串是指一连串的字符,它是由许多单个字符连接而成。
  • 字符串可以包含任意字符,这些字符必须包含在一对双引号""之内,例如:“abc”.
  • java中封装了3个字符串类,分别是String类、StringBuffer类、StringBuilder类,都在java.lang包中。

20.1 String类的初始化

  • 使用字符串方法前,首先要创建字符串对象,java可以使用2种方式创建字符串对象
    • 使用字符串常量创建对象
    • 使用构造方法创建对象
20.1.1 使用字符串常量初始化
String str1 = "abc";

​ 这种方法用于创建并初始化String对象,比较常用,其中"abc"表示字符串常量,在内存中是不可修改的。

20.1.2 使用构造方法初始化
  • String类常见的构造方法如下表所示:
方法声明 功能描述
String() 创建一个内容未空的字符串
String(String value) 根据指定的字符串value创建对象
String(char[] value) 根据指定的字符数组创建对象
String(byte[] value) 通过使用平台的默认字符集解码指定的字节数组来构造新的对象
String(byte[] bytes, Charset harset) 由指定的字节数组构造一个新的String并指定解码字符集charset
  • 以下是使用构造方法创建字符串对象

    /**
       * 使用构造方法创建String对的方法
       *
       * @author root
       */
      public void stringDemo() {
         
        // 1. 创建空字符串对象
        String str = new String();
        // 2. 创建内容为abcd的字符串对象
        String str1 = new String("abcd");
        // 3. 使用字符数组创建字符串对象
        char[] chars = {
         'a', 'b', 'c'};
        String str2 = new String(chars);
        // 4. 使用字节数组创建字符串对象
        byte[] bytes = {
         97, 98, 99};
        String str3 = new String(bytes);
        // 5. 使用字节数组创建字符串对象, 同时指定字符集
        String str4 = new String(bytes, StandardCharsets.UTF_8);
        System.out.println("str=" + str); // str=
        System.out.println("str1=" + str1); // str1=abcd
        System.out.println("str2=" + str2); // str2=abc
        System.out.println("str3=" + str3); // str3=abc
        System.out.println("str4=" + str4); // str4=abc
      }
    

20.2 String类的常见操作

​ 在实际的开发中,String类对象应用是否广泛,同时对字符串的操作也非常重要。下表是String类常用的一些方法:

表20-1 String类常用方法
方法声明 功能描述
int indexOf(int ch) 返指定字符ch在字符串中第一次出现位置的下标
int lastIndexOf(int ch) 返指定字符ch在字符串中最后一次出现位置的下标
int indexOf(String str) 返指定字符串str在字符串中第一次出现位置的下标
int lastIndexOf(String str) 返指定字符串str在字符串中最后一次出现位置的下标
char charAt(int index) 返指符串下标为index的字符,index=[0, str.length()-1]
boolean endsWith(String suffix) 判断字符串是否是以指定字符串suffix结尾
boolean equals(Object anObject) 判断字符串和anObject字符串的内容是否相等
int length() 返回字符串长度
boolean isEmpty() 如果字符串长度为0返回true, 否则返回false
boolean startsWith(String prefix) 判断字符串是否是以指定字符串prefix开头
boolean contains(CharSequence s) 判断字符串是否包含指定字符串序列s
String toLowerCase() 字符串转小写字符
String toUpperCase() 字符串转大写字符
char[] toCharArray() 转换字符串为char数组
static String valueOf(Object obj) 将对象obj转换为字符串
static String format(String format, Object… args) 使用指定的转换字符串对args参数进行格式化
String replace(CharSequence target, CharSequence replacement) 返回一个新字符串,是通过replacement替换所有target得到的
String[] split(String regex) 根据参数regex将原来的字符串分割成若干字符串数组
String substring(int beginIndex, int endIndex) 截取下标[beginIndex, endIndex)范围的子字符串
String trim() 返回去除首尾空格的新字符串
20.2.1 字符串的获取功能
  • 下面的程序是字符串获取的操作,如获得字符串长度,获得指定位置的字符等。

      public void stringDemo1() {
         
        String str = "ababcdedcba";
        // 1. 获得字符串长度
        System.out.println("字符串长度为: " + str.length()); // 字符串长度为: 11
        // 2. 获得指定位置的字符
        System.out.println("字符串中第一个字符为: " + str.charAt(0)); // 字符串中第一个字符为: a
        // 3. 获得字符首次出现的下标
        System.out.println("字符串中第一个c字符的下标为: " + str.indexOf('c')); 
        // 字符串中第一个c字符的下标为: 4
        // 4. 获得字符最后出现的下标
        System
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值