常用类-String类

一、String类的理解

String类:位于java.lang 包中,被fifinal修饰,没有子类

二、获取字符串的两种常见方式

1、String str1 = "hello";

直接使用""获取字符串在串池中查看是否有需要的字符串对象,如果串池有,则直接使用;如果没

有需要在串池中产生一个字符串对象,串池中的字符串对象可以被共享

2、String str2 = new String("wolrd");

利用构造方法获取字符串,首先在堆空间中创建一个字符串对象,然后查看串池中是否存在此字符

串对象,存在-串池中就不再创建字符串对象,如果没有,则串池中需要再创建一个字符串对象用

于共享,这种获取字符串对象的方式产生1~2个字符串对象(默认将堆空间中的字符串存储在字符串

变量中)

扩充:String str = new String("world");

这种获取字符串对象的方式默认指向堆空间中字符串对象,如果调用str.intern();方法,则指向串池

中字符串对象

三、字符串的常见方法

引入:字符串底层本质为char类型的数组,应用层操作字符串底层实际上操作的数组,字符串的下

标从0开始,到字符串长度-1

1、int length():获取字符串的长度 【常用】

        注意:数组获取长度:数组名.length

        字符串获取长度:str.length()

2、 char charAt(int index):获取指定下标对应的字符

        注意:如果给定的下标超出范围,则运行报错,错误信息为:

        java.lang.StringIndexOutOfBoundsException (字符串下标越界) 【常用】

3、 boolean contains(String s):判断当前字符串中是否包含s子串,包含-true;不包含-false

4、 char[] toCharArray():将字符串转换为字符数组

5、 boolean equals(String str):判断字符串内容是否相同,相同——true;不相同-false

        注意:实际开发中,比较字符串内容是否相等,使用equals

6、 boolean equalsIgnoreCase(String str):比较字符串内容是否相同,但是忽略大小写

        实际开发中:对验证码比较时,通常忽略大小写

常用类-String类_第1张图片

 常用类-String类_第2张图片

7、 String toUpperCase():将字符串小写转换为大写

     String toLowerCase():将字符串大写转换为小写

8、int indexOf(String s):获取s在当前字符串中第一次出现的首字符的下标做返回,如果没有出现

过,则返回-1

9、 boolean endsWith(String s):判断当前字符串是否以s结尾,是-true;不是-false

10、 boolean startsWith(String s):判断当前字符串是否以s开头,是-true;不是-false

11、 String substring(int startInder,int end):从当前字符串中截取一个子串,子串的结果中包含起

始下标startIndex,截取到 end-1下标

12、 String trim():去除当前字符串中的前后空格

        实际开发应用:

        String age = "18 ";

        // String ->int

        int a=Integer.parseInt(age.trim());

        System.out.println(a);

13、 String[] split(String s):将当前字符串以s进行拆分,将拆分结果自动封装在String数组中返回

常用类-String类_第3张图片

四、String的不可变长

        1、 String字符串字面值为常量,一旦创建不能更改,如果对字符串进行拼接,会在原来的字

符串基础上拷贝一个副文本,在副文本上完成字符串的拼接

      2、由于String不可变长的字符串,完成字符串拼接时效率较低

五、可变长的字符串

 1、常用的可变长字符串位于java.lang包中

        (1)StringBuffer:jdk1.0版本,线程安全,并发效率低

        (2)StringBuilder:jdk5.0,线程不安全,并发效率高

2、常用构造方法:

        StringBuilder():无参数的构造方法

        StringBuilder(String str):有参数的构造法方法

 3、常用的方法:

        append(参数):完成字符串的拼接

4、写出String、StringBuilder、StringBuffer的区别【面试题目】

        String:不可变长的字符串,字符串拼接效率较低

        StringBuilder:可变长字符串,拼接效率相对高,线程不安全

        StringBuffer:可变长字符串,拼接效率相对高,线程安全

5、 将String转换为StringBuider

        StringBuilder s = new

        StringBuilder("hello");

        StringBuilder转换为String

        String ss=s.toString();

你可能感兴趣的:(java,java)