String类:
API介绍:
解析:
- String类代表的是字符串,Java中所有的字符串都是该类的一个实例化对象。但String类被final关键字修饰,所以一旦被创建就无法被更改,String对象不可变但可以共享
构造方法:
public class Demo4 {
public static void main(String[] args){
//1,直接赋值给对象
String s1 = "abc";
System.out.println(s1);//abc
//2,String()无参构造方法
String s2 = new String();
System.out.println(s2);//空值
//3,String(byte[]); 带byte[]构造方法,作用:将字节数组转换字符串
byte[] bs = {97,98,99};
String s3 = new String(bs);
System.out.println(s3);//abc,通过字节编码表转换成字符
//4、String(byte[],int,int) 带byte[],int,int构造方法 作用:将字节数组某部分转换(解码)字符串
String s4 = new String(bs,1,1);
System.out.println(s4);//b
//5、String(char[]) 带char[]数组的构造方法 作用:将字符数组转字符串。
char[] chs = {'a','b','c'};
String s5 = new String(chs);
System.out.println(s5);//abc
//6、String(char[],int,int) 带char[],int,int构造方法 作用:将字符数组某部分转换(解码)字符串
String s6 = new String(chs,1,2);
System.out.println(s6);//bc
}
}
常用功能方法:
- 判断功能
public class Demo4 {
public static void main(String[] args){
//contains(CharSequence) 判断参数字符串是否被原字符串包含
String s1 = "abcdef";
String s2 = "abc";
boolean b = s1.contains(s2);
System.out.println(b);//true
//isEmpty() 是否为空字符串
b = s1.isEmpty();
System.out.println(b);//false
//endWith() 判断字符串的后缀 ;startWith 判断字符串的前缀
b = s1.startsWith("abc");
System.out.println(b);//true
b = s1.endsWith("ef");
System.out.println(b);//true
//.equals(Object) 比较内容,区分大小写
String s3 = "ABC";
b = s3.equals(s2);
System.out.println(b);//false
// .equalsIgnoreCase()忽略大小写比较
b = s3.equalsIgnoreCase(s2);
System.out.println(b);//true
}
}
- 获取功能:
import java.util.Arrays;
public class Demo4 {
public static void main(String[] args){
String s1 = "abcdefgh";
//1,substring(int) 获取由下标开始到结尾的子字符串,下标从1开始
String s2 = s1.substring(1);//(1,.....]
System.out.println(s2);//defgh
//2,substring(int,int) 获取有初始下标到结束下标的子字符串,下标从1开始
String s3 = s1.substring(1,3);//(1,3]
System.out.println(s3);//bc
//3,.split(String) 根据目标字符串切割原字符串,获取目标字符串数组
String s = "10_20_30_40";
String[] strs = s.split("_");
System.out.println( Arrays.toString(strs));//[10, 20, 30, 40]
//4,indexOf(int)/indexOf(String) 通过字符或字符串获取下标
int index1 = s1.indexOf("e");
System.out.println(index1);//4
int index2 = s1.indexOf("ef");
System.out.println(index2);//4,字符串第一个获取的下标
int index3 = s1.indexOf("ez");
System.out.println(index3);//-1
//注意点:
// 1、indexOf(String) 通过由左往右扫描目标字符串获取原字符串中包含该字符串的首字符下标
// 2、indexOf(String) 目标字符串必须全包含于原字符串中,否则返回-1表示该字符串不存在原字符串中就没有对应的下标
//5,.charAt(int) 通过下标获取字符
char s5 = s1.charAt(3);
System.out.println(s5);//d
//6,.length() 获取字符串的长度
int n = s1.length();
System.out.println(n);//8
}
}
- 转换功能:
import java.util.Arrays;
public class Demo4 {
public static void main(String[] args) {
//转换
//1,trim() 去字符串左右空格,注意无法去除字符串中间空格。
String s1 = " a bc ";
System.out.println(s1);//a bc
String s2 = " abc ";
String ss = s2.trim();
System.out.println(ss);//abc
//2,toCharArray 将字符串转换字符数组
String s4 = "abc";
char[] cs = s4.toCharArray();
System.out.println(Arrays.toString(cs));//[a, b, c]
//3,.getBytes() 将字符串转换字节数组(编码过程)
String s5 = "abc";
byte[] bs = s5.getBytes();
System.out.println(Arrays.toString(bs));//[97, 98, 99]
}
}