一、概念
1、String类型表示字符串,属于java.lang包,不需要导包
2、字符串字面值常量储存在方法区的常量池中
(二)、构造方法
1、String()创建一个空字符串
2、String(byte[] arr, int offset, int length)将byte数组的一部分解析为字符串
3、3、String(char[] arr, int offset, int length) 将char数组的一部分解析为字符串
4、String(String str) 返回参数字符串的副本
public static void main(String[] args) {
String s = new String();
System.out.println(s);//输出空字符串
String str = new String("abc");
System.out.println(str);//输出字符串abc
}
char[] arr = {'a', 'z', 'b', 'q','u'};
//char -> char[] -> String
String str = new String(arr, 0, 3);//将arr数组中的第0位开始截取3位赋值给str【输出:azb】
System.out.println(str);
只有byte和char可以运行,将数组内的数字解析成Ascil值输出
byte[] arr = {97, 98, 99, 100};
String str = new String(arr);
System.out.println(str);//输出abcd
String str1 = new String(arr, 1, 2);
System.out.println(str1);//输出bc
(
(三)、String类型的判断功能
1、equals(Object obj) 判断调用者字符串和参数字符串内容是否相等
2、equalsIgnoreCase(String anotherString) 忽略大小写判断调用者和参数字符串内容是否相等
3、contains(String str) 判断参数字符串是否为调用者字符串的子字符串
4、startsWith(String str) 判断调用者是否为参数字符串开头
5、endsWith(String str) 判断调用者是否为参数字符串结尾
6、isEmpty() 判断调用者是否为空串
A.方法(B)
“A”.方法(“B”)**
(四)String类型的获取功能
1、length() 返回调用者字符串的长度
2、charAt(int index) 从调用者字符串上获取到指定索引的字符并返回
3、substring(int beginIndex) 从指定索引开始,截取调用者字符串的一部分,直到字符串结尾
4、substring(int beginIndex, int endIndex) 截取调用者字符串的任意一部分,范围:[beginIndex, endIndex)
String str = "abcabcabc";
System.out.println(str.length());//获取长度
//String -> char
System.out.println(str.charAt(3));//获取索引3并且返回索引3的内容【输出:c】
System.out.println(str.substring(5));//截取从索引5开始直到结束的值【输出:cabc】
System.out.println(str.substring(2, 5));//截取索引2到索引5的值【输出:cab】
注意:截取索引两头都是截头不截尾
5、indexOf重载:
(1)indexOf(int ch) 顺序查找指定字符第一次出现的索引
(2)indexOf(int ch, int fromIndex) 从指定位置开始顺序查找指定字符的索引
(3)indexOf(String str) 顺序查找指定字符串第一次出现的索引
(4)indexOf(String str int fromIndex) 从指定位置开始顺序查找指定字符串的索引
6、lastIndexOf重载:和indexOf相反
String str = "abcabcabc";
System.out.println(str.indexOf('b'));//按顺序查找b是第几位【输出:1】
System.out.println(str.indexOf('b', 2));//按顺序查找第2个b在索引几【输出:4】
System.out.println(str.indexOf("cab"));//顺序查找字符串第一位的索引【输出:2】
System.out.println(str.indexOf("cab", 3));//从第3个指定的索引顺序向后查找,出现可以构成想要的字符串a停止,从0索引向后直到刚刚的a,索引到几输出几
System.out.println(str.lastIndexOf("cab", 7));//同上相反,第7个索引向前数
(五)String类型的转换功能
1、byte[ ] getBytes( ) 将调用者字符串转为byte数组
2、char[ ] toCharArray( ) 将调用者字符串转为对应的字符数组
3、toUpperCase( ) 将字符串转为纯大写
4、toLowerCase( ) 将字符串转为纯小写
5、concat(String str) 将参数字符串追加到调用者字符串之后(拼串)
6、ValueOf重载:都是静态方法,用于将其他数据类型转换为String类型
String str = "abc";
byte[] arr = str.getBytes();//将str里的字符串转为byte类型的数组
System.out.println(Arrays.toString(arr));
char[] arr1 = str.toCharArray();//将str里的字符串转为char类型的数组
for (int i = 0; i < arr1.length; i++) {
System.out.println(arr1[i]);//可以单独打印
}
System.out.println(Arrays.toString(arr1));
Arrays.toString( 数组名 ):可以将数组内容打印出来
String str = String.valueOf(123);//ValueOf重载:都是静态方法,用于将其他数据类型转换为String类型
//都是拼接字符串【输出:1231】
System.out.println(str + 1);
System.out.println(str.concat("1"));
String str1 = "HeLlOwORld";
System.out.println(str1.toUpperCase());//大写
System.out.println(str1.toLowerCase());//小写