我是靠谱客的博主 清秀故事,这篇文章主要介绍重拾java基础(十二):java最常用类型String总结,现在分享给大家,希望可以做个参考。

一、String类概述

复制代码
1
2
3
4
5
1. 字符char 一个字符 '' 字符串 String 一个或多个 "" 2. String是引用数据类型,属于java.lang包 3. 编码表 ascii unicode 4. Java语言支持unicode

二、构造方法

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
空构造 public String() String s1=new String(); System.out.println(s1); 输出结果为空。 参数为字符串 public String(String s) String s2=new String("hello"); //String s2="hello"; System.out.println(s2); 输出结果为 hello 参数为字节数组 public String( byte[] bytes ) 转换 byte[] t={97,98,99,'d'}; //byte b='d'; String s3=new String(t); System.out.println(s3); 输出结果为 abcd 它是将byte数组类型转化为ASCII 表对应的字符 参数为字符数组 public String( char[] value ) 转换 char[] c={'a','b','c',100}; //char d=100; String s4=new String(c); System.out.println(s4); 输出结果为 abcd 它是将char数组类型转化为ASCII 表对应的字符。

三、String是一个特殊的引用类型

复制代码
1
2
3
4
5
6
7
8
9
1. 它支持两种写法: String s="hello"; //s也是对象 String s=new String("hello"); 注意:String s1="hello"; String s2="hello"; 这时有三个对象 s1、s2、hello 2. 画内存分配图
  • new String的内存分配图

这里写图片描述

  • new和不new两种方式的内存分配

这里写图片描述


  • 这里写图片描述

    3.一个字符串常量可以直接当成一个对象去使用
    这里写图片描述

四、+

复制代码
1
2
3
4
1. 拼接字符串 只能拼接字符串 2. 如果一个字符串跟一个非字符串的进行拼接,那么Java会自动把非字符串的转 换成字符串,然后再进行拼接 3. 注意的是:使用+拼接字符串时的内存分配图(String对象是不可变的)

这里写图片描述

复制代码
1
2
3
4
4. 即使String对象不是new出来的,那么在进行字符串拼接时也是每次都在堆 中新开辟内存空间 5. 字符串常量在拼接时,不会在堆中新开辟内存空间 (重点)

五、判断功能相关的方法

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
boolean equals(Object obj) String s1="hello"; String s2=new String("HellO"); System.out.println(s1==s2); System.out.println(s1.equals(s2)); 输出结果为 false falseequals比较的是内容区分大小写 boolean equalsIgnoreCase(String str) String s3="hello"; String s4="Hello"; System.out.println(s3==s4); System.out.println(s3.equalsIgnoreCase(s4)); 輸出結果為 false true ;equalsIgnoreCase 比较的是内容不区分大小写 boolean contains(String str) String s1="hello"; System.out.println(s1.contains("ho")); 输出结果为 false 这个方法是看“hello”中是否包含ho 记得不能分开,如果是he的话结果就是 true boolean startsWith(String str) System.out.println(s1.startsWith("he")); 输出结果是:true 这个方法是求输入的这个字符串是否 以你定义的这个字符串开头的! 这里就是看 “hello”是否以he开头 如果换成e 结果就为false了。 boolean endsWith(String str) System.out.println(s1.endsWith("llo")); 输出结果为:true 这个方法是求输入的这个字符串是否 以你定义的这个字符串结尾的! 这里就是看 “hello”是否以lo结尾 如果换位ll 结果就为false了。 boolean isEmpty() "" null s1=""; System.out.println(s1.isEmpty()); 输出结果为:true 这个方法是看 s1这个字符串是否为"" 如果是就为true
复制代码
1
2
3
4
5
注意:null 1.null在Java中是作为常量存在的 2.它表示对象不存在 3.一个是可以作为初始值来用,一个是可以加快垃圾回收的速度

六、获取功能相关的方法

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
int length() String s1="heloool"; System.out.println(s1.length()); 输出结果为:7 这个方法是来求一个字符串的长度的。 char charAt(int index) System.out.println(s1.charAt(0)); 输出结果为 h 这个方法是用来输入字符串的某个字符的地址坐标来 输出这个坐标所对应的值;如果输入2的话输出应该为l。 int indexOf(int ch) 和int indexOf(String str); System.out.println(s1.indexOf("he")); 输出结果为 0 这个方法是用来寻找输入的字符串(例如he)在当前字 符串(heloool)中首次出现的,首个字符的位置。 注意he要连写,并且不能为ho这种形式 他们都会 输出 -1 int indexOf(int ch,int fromIndex)和int indexOf(String str,int fromIndex) System.out.println(s1.indexOf("l",4)); 输出结果为 6 这个方法是用来寻找输入的字符串(例如l)在当前字 符串(heloool)中你定义的从哪个地址坐标(4)开始 出现的,首个字符的位置。 String substring(int start)和 String substring(int start,int end) //// String substring(int start) System.out.println(s1.substring(3)); 输出结果为:oool 这个方法是为了求出 s1这个字符串中 从3开始 包括(3)这个坐标,开始输出字符串,一直到结尾。 // String substring(int start,int end) System.out.println(s1.substring(2,5)); 输出结果为 loo 这个方法是为了求出 s1这个字符串中 从2开始 包括(2)这个坐标,开始输出字符串,一直到5(不包括5 这个坐标)。 注意:java有两个原则 一、就近原则;二、顾前不顾后原则。

七、转换功能相关的方法

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
byte[] getBytes() String s1="abcde"; byte[] b=s1.getBytes(); for (int i = 0; i < b.length; i++) { System.out.println(b[i]); } 输出结果为:97 98 99 100 101(竖着写) 这个方法表示将一个String 类型的字符串转化为:byte 类型的数组;对应的值为ASCII表值。 char[] toCharArray() char[] c=s1.toCharArray(); for (int i = 0; i < c.length; i++) { System.out.println(c[i]); } 输出结果为:a b c d e (竖着写) 这个方法表示将一个字符转变为数组 。 注意 数组类型为char static String valueOf(char[] chs) //相当于 new String(char[] c) String s2=String.valueOf(c); System.out.println(s2); 输出结果为:abcde 这个方法是将c这个数组转化为字符串 static String valueOf(基本数据类型 i) int j=100; s2=String.valueOf(j); //s2=j+""; System.out.println(s2+100); 输出结果为:100100 这个方法是将基本数据类型转化为字符串。 注意 : 我们一般将基本数据类型转化为字符串类型一般用 s2=j+""; String toLowerCase() String s3="hElLo"; System.out.println(s3.toLowerCase()); 输出结果为:hello 这个方法是将字符串统一为小写形式。 String toUpperCase() System.out.println(s3.toUpperCase()); 输出结果为:HELLO 这个方法是将字符串统一为大写形式。 String concat(String str) “+” String s4=s3.concat(",world"); System.out.println(s4); 输出结果为:hElLo,world 这个方法是将字符串进行拼接。

八、String类的其他功能

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
替换 String replace(String old,String new) String s1="helloe"; s1=s1.replace("l", "123"); System.out.println(s1); 输出结果为:he123123oe 这个方法是将字符串中的l全部用123来替换。 分割 String[] split(String regex) String s2="abcdeffcdtt"; String[] ss=s2.split("cd"); for (int i = 0; i < ss.length; i++) { System.out.println(ss[i]); } 输出结果为:ab eff tt(竖着写) 这个方法是从cd分割,且不要cd 其前与后都 分别存入数组。 去除字符串两端的空格 String trim() String s3=" he llo world "; s3=s3.trim(); System.out.println(s3); 输出结果为:he llo world 这个方法是将s3字符串两端的空格去掉! s3=s3.replace(" ", ""); System.out.println(s3); 输出结果为:helloworld 注意: 用""来替换" " 这样就起到了删除效果 补充: int lastIndexOf(int ch) int lastIndexOf(int ch,int fromIndex) int lastIndexOf(String s) String s4="hello"; System.out.println(s4.indexOf("l")); //输出为2 这个是从前向后找 System.out.println(s4.lastIndexOf("l")); //输出为3 这个是从后向前找! int lastIndexOf(String s,int fromIndex)

最后

以上就是清秀故事最近收集整理的关于重拾java基础(十二):java最常用类型String总结的全部内容,更多相关重拾java基础(十二)内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(64)

评论列表共有 0 条评论

立即
投稿
返回
顶部