String类常用方法

String类常用方法

java.long.String 包
特点:
1.程序中任何“ ”字符串都是String类的实列对象
2.字符串不变; 它们的值在创建后不能被更改。
3.字符串缓冲区支持可变字符串因,为String对象是不可变的,它们可以被共享。
4.字符串效果上时char[]字符数组,但底层原理时byte[]字节数组
常见创建字符串的3+1种类方式:
三种构造方法:
public String(); 创建一个空白字符串
public String(char[] String ); 根据字符数组中的内容,来创建对应的字符串
public String(byte[] String); 根据字节数组中的内容,来创建对应的字符串
一种直接创建:
String str=”Hello”

1
2
3
4
5
6
7
8
9
10
11
12
13
14
//空参构造
String str1=new String();
System.out.println(str1);
//字符数组构造
char[] charArray=new char[]{'H','E','L','L','O'};
String str2=new String(charArray);
System.out.println(str2);
//字节数组构造
byte[] byteArray={'W','O','R','L','D'};
String str3=new String(byteArray);
System.out.println(str3);
//直接创建
String str4="I";
System.out.println(str4);
字符串常量池:程序中直接写上双引号的字符串,就在字符串常量池中. 对于基本类型来说,==是进行数值的比较 对于引用类型来说,==是进行【地址值】的比较
1
2
3
4
5
6
7
String str1 ="abc";
String str2 ="abc";
char[] charArray={'a','b','c'};
String str3=new String(charArray);
System.out.println(str1==str2); //true
System.out.println(str1==str3); //false
System.out.println(str2==str3); //false

程序运行图

字符串内容比较:
public boolean equals(Object obj);参数可以是任何对象,只有一个参数是一个字符串并且内容相同
才会给true 否则返回false。
注意:
1.equals方法具有对称性,a.equals(b)和b.equals(a)效果一样
2.如果比较双方一个常量一个变量,推荐把常量放在前 “abc”.equals(str),否则容易空指针异样
public boolean equalsIgnoreCase(Object obj); 忽略大小写,进行内容比较

1
2
3
4
5
6
7
8
9
10
11
12
String str1 ="abc";
String str2 ="abc";
char[] charArray={'a','b','c'};
String str3=new String(charArray);
System.out.println(str1.equals(str2)); //true
System.out.println(str1.equals(str3)); //true
System.out.println(str2.equals(str3)); //true
System.out.println("abc".equals(str2)); //true
//equalsIgnoreCase
String str4 ="ABC";
System.out.println(str4.equals(str2)); //fasle,区分大小写
System.out.println(str4.equalsIgnoreCase(str2)); //true,忽略大小写
String 中常用的方法:

​ public int length(); 获取当前字符串中的字符个数,拿到字符串长度
​ public String concat(String str); 将当前字符串和参数字符串拼接为新的字符串返回
​ public char charAt(int index); 获取指定索引位置的字符(索引从0开始)
​ public int indexOf(String str); 查找指定字符串在本字符串首次出现的索引位置,没有返回-1值

截取字符串:

​ public String substring(int index);截取从参数位置一直到字符串末尾,返回新字符串
​ public String substring(int begin,int end);截取从begin开始,直到end结束,中间的字符串。
​ [begin,end)此方法是左闭右开区间

转换字符串:

​ public char[] tocharArray();将当前字符串拆分成为字符数组作为返回值
​ public byte[] getBytes(); 获得当前字符串底层的字节数组.
​ public String replace(CharSequence oldString,CharSequence new String);
​ 将所有出现的老字符串替换为新的字符串,返回替换之后的新字符串,
​ CharSequence 值可以接收字符串类型

切割字符串:

​ public String[] split(String regex);按照指定规则将字符串分割为若干部分
注意: splir方法的参数其实是一个”正则表达式”,如果按照英文”.”进行切分,必须写”\“ =>”\.”

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
String str1="Hello";
String str2="World";
//获取字符串长度
System.out.println("str1字符串长度是:"+str1.length());
//拼接字符串
System.out.println(str1); //Hello
System.out.println(str2); //World
System.out.println(str1.concat(str2)); //HelloWorld
//获取指定索引位置
System.out.println(str1.charAt(1)); //e
//查找指定位置字符串
System.out.println(str2.indexOf("r")); //2
//截取字符串
System.out.println(str1.substring(1)); //ello
System.out.println(str1.substring(1,3)); //el
//转换为字符数组
char[] chars="Hello".toCharArray();
System.out.println(chars[0]); //H
System.out.println(chars.length); //5
//转换为字节数组
byte[] bytes = "abc".getBytes();
for (int i = 0; i < bytes.length; i++) {
System.out.println(bytes[i]); // 97 98 99
}
//字符串替换
String string="i am china";
System.out.println(string.replace("am","love"));// i love china
//分割字符串
String str5="abc,def,ghl";
String[] strings=str5.split(",");
for (int i = 0; i < strings.length; i++) { //abc def ghl
System.out.println(strings[i]);
}
看都看了,不说来点什么!