Java:String类

实例化方式

 

1.String类是引用数据类型,该类实例化方式有两种:

 

直接赋值,其语法格式如下:

注: 直接赋值

 

构造方法实现其实例化,其语法格式如下:

注:构造方法:将字符数组中的元素变为一个字符串

 

两种方式区别 

 

1.String类实例化的两种方式是有区别的:

 

直接赋值,这种方式会出现常量池数据共享的现象:

示例一 :

注:执行“String str1 = ”abc“;”后,JVM在常量池中开辟空间存放一个abc字符串空间并让str1指向该对象; 

 

示例二 :

注:

      执行“String str1 = ”abc“;”后,JVM在常量池中开辟空间存放一个abc字符串空间并让str1指向该对象;

      执行“String str2 = ”abc“;”时,JVM会先检查常量池中是否已经存在了一内容为abc的空间,如果存在就直接让str2指向该空间,否则就会在开辟一个新的空间存放该字符串,上面的代码等同于下面代码:

 

示例三 :

注:

        执行“String str1 = ”abc“;”后,JVM在常量池中开辟空间存放一个abc字符串空间并让str1指向该对象;

        ②执行“String str2 = ”abc“;”时,JVM会先检查常量池中是否已经存在了一个内容为abc的空间,如果存在就直接让str2指向该空间,否则就会在开辟一个新的空间存放该字符串;

        ③执行“String str3 = ”def“;”时,JVM会先检查常量池中是否已经存在了一个内容为def的空间,由于不存在,所以JVM在常量池中新开辟一个空间存放def并让str3指向该空间;

 

2.构造方法实现其实例化,这种方式每new一次就会创建新的对象: 

 

注:

        执行“String str = ”abc“;”后,JVM在常量池中开辟存放abc的空间并让str指向该空间;

        ②执行“String str1 = new String(str);”时,JVM直接创建一个新的对象并让str1指向该对象;

        ③执行“String str2 = new String(str);”时,JVM再次创建一个新的对象并让str2指向该对象;

 

常用方法 

 

1.length() 该方法返回字符串的长度: 

 

 

2.startsWith(String value) 判断字符串是否以value字符串开头,如果是返回true,否则返回false 

 

 

3.endsWith(String value) 判断字符串是否以value字符串结尾,如果是返回true,否则返回false 

 

 

4.equals(String targetString) 用于判断两个字符串是否相同,完全相同返回true,否则返回false

 

 

注意:String equals方法和==区别: 

 

①String类中的equals方法用于判断两个字符串内容是否相同: 

 

 

②如果所比较的两个变量是引用类型,则==用于比对两个变量指向的是否为同一个存放数据的地址;如果是基本数据类型的两个变量进行比较,则比较的是值是否相等: 

 

注:蓝框:str1str2指向同一个同一个地址,所以输出true

       红框:str1str3指向不同的两个地址,所以输出false

 

5.equalsIgnoreCase (String value) 用于判断两个字符串忽略大小写后是否相同,相同返回true,否则返回false 

 

 

6.toCharArray() 将字符串转换为char类型的数组: 

 

 

方法名

参数

备注

replaceAll(String old, String new)

old旧字符串

 

new新字符串

返回当前字符串用new替换old的结果

trim()

返回去掉当前字符串左右两端空格后的字符串,注意:当前字符串中间空格不会去掉。

split(String sign)

返回一个数组,该数组由目标字符串根据sign拆分得到。

 

方法名

参数

备注

indexOf(String s)

s表示目标字符串对象

 

start表示起始位置

 

end表示结束位置

从当前字符串的起始位置检索目标字符串s第一次出现的位置(从0开始计数),如果没有检索到s返回-1

lastIndexOf(String s)

从当前字符串的起始位置检索目标字符串s最后一次出现的位置(从0开始计数),如果没有检索到s返回-1

indexOf(String s, int start)

从当前字符串的start位置(从0开始计数)开始检索目标字符串s第一次出现的位置(从0开始计数),如果没有检索到s返回-1

lastIndexOf(String s, int end)

从当前字符串的起始位置开始,到end位置(从0开始计数)结束,检索目标字符串s最后一次出现的位置(从0开始计数),如果没有检索到s返回-1

substring(int start)

返回当前字符串从start开始截取到当前字符串末尾的部分。

substring(int start, int end)

返回当前字符串,从start开始截取到end之前的部分。

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2018-09-07 09:25  龙雪  阅读(129)  评论(0编辑  收藏  举报