常用API与异常(一)

String类

String概述

1 String 类在 java.lang 包下,所以使用的时候不需要导包

2 String 类代表字符串,Java 程序中的所有字符串文字(例如“abc”)都被实现为此类的实例也就是说,Java 程序中所有的双引号字符串,都是 String 类的对象

3 字符串不可变,它们的值在创建后不能被更改

String类的构造方法

常用的构造方法

构造器

说明

public String()

创建一个空白字符串对象,不含有任何内容

public String(String original)

根据传入的字符串内容,来创建字符串对象

public String(char[] chars)

根据字符数组的内容,来创建字符串对象

public String(byte[] bytes)

根据字节数组的内容,来创建字符串对象

示例代码

package com.wedu.string;

public class Demo2StringConstructor {
    /*
        String类常见构造方法:

            public String() : 创建一个空白字符串对象,不含有任何内容
            public String(char[] chs) : 根据字符数组的内容,来创建字符串对象
            public String(String original) : 根据传入的字符串内容,来创建字符串对象
            String s = “abc”;  直接赋值的方式创建字符串对象,内容就是abc

         注意:
                String这个类比较特殊, 打印其对象名的时候, 不会出现内存地址
                而是该对象所记录的真实内容.

                面向对象-继承, Object类
     */
    public static void main(String[] args) {
        // public String() : 创建一个空白字符串对象,不含有任何内容
        String s1 = new String();
        System.out.println(s1);

        // public String(char[] chs) : 根据字符数组的内容,来创建字符串对象
        char[] chs = {'a','b','c'};
        String s2 = new String(chs);
        System.out.println(s2);

        // public String(String original) : 根据传入的字符串内容,来创建字符串对象
        String s3 = new String("123");
        System.out.println(s3);
    }
}

创建字符串对象的区别对比

通过构造方法创建

  ​    通过 new 创建的字符串对象,每一次 new 都会申请一个内存空间,虽然内容相同,但是地址值不同

直接赋值方式创建

  ​    以“”方式给出的字符串,只要字符序列相同(顺序和大小写),无论在程序代码中出现几次,JVM 都只会建立一个 String 对象,并在字符串池中维护

String提供的操作字符串数据的常用方法

方法名

说明

public int length​()

获取字符串的长度返回(就是字符个数)

public char charAt​(int index)

获取某个索引位置处的字符返回

public char[] toCharArray​()

将当前字符串转换成字符数组返回

public boolean equals(Object anObject)

判断当前字符串与另一个字符串的内容一样,一样返回true

public boolean equalsIgnoreCase(String anotherString)

判断当前字符串与另一个字符串的内容是否一样(忽略大小写)

public String substring(int beginIndex, int endIndex)

根据开始和结束索引进行截取,得到新的字符串(包前不包后)

public String substring(int beginIndex)

从传入的索引处截取,截取到末尾,得到新的字符串返回

public String replace(CharSequence target, CharSequence replacement)

使用新值,将字符串中的旧值替换,得到新的字符串

public boolean contains(CharSequence s)

判断字符串中是否包含了某个字符串

public boolean startsWith(String prefix)

判断字符串是否以某个字符串内容开头,开头返回true,反之

public String[] split(String regex)

把字符串按照某个字符串内容分割,并返回字符串数组回来

 String使用时的注意事项

String对象的内容不可改变,被称为不可变字符串对象。

只要是以“...”方式写出的字符串对象,会存储到字符串常量池,且相同内容的字符串只存储一份

但通过new方式创建字符串对象,每new一次都会产生一个新的对象放在堆内存中。

 StringBuilder类 

StringBuilder类概述

概述 :StringBuilder 是一个可变的字符串类,我们可以把它看成是一个容器,这里的可变指的是 StringBuilder 对象中的内容是可变的

StringBuilder类和String类的区别

String类:内容是不可变的
StringBuilder类:内容是可变的

StringBuilder类的构造方法

常用的构造方法

方法名说明
public StringBuilder()创建一个空白可变字符串对象,不含有任何内容
public StringBuilder(String str)根据字符串的内容,来创建可变字符串对象

示例代码

public class StringBuilderDemo01 {
    public static void main(String[] args) {
        //public StringBuilder():创建一个空白可变字符串对象,不含有任何内容
        StringBuilder sb = new StringBuilder();
        System.out.println("sb:" + sb);
        System.out.println("sb.length():" + sb.length());

        //public StringBuilder(String str):根据字符串的内容,来创建可变字符串对象
        StringBuilder sb2 = new StringBuilder("hello");
        System.out.println("sb2:" + sb2);
        System.out.println("sb2.length():" + sb2.length());
    }
}

StringBuilder常用的成员方法

方法名称

说明

public StringBuilder append(任意类型)

添加数据并返回StringBuilder对象本身

public StringBuilder reverse()

将对象的内容反转

public int length()

返回对象内容长度

public String toString()

通过toString()就可以实现把StringBuilder转换为String

好处:StringBuilderString更适合做字符串的修改操作,效率会更高,代码也会更简洁 

StringBufferStringBuilder

StringBuffer的用法与StringBuilder是一模一样的

StringBuilder是线程不安全的  StringBuffer是线程安全的

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值