String类:一个字符串就是一个String对象
字符串是由多个字符组成的一串数据(字符序列)
String构造方法:
public String() 创建一个不包含任何字符的空字符串
public String(byte[] bytes) 根据字节数据创建其所代表的字符串
public String(byte[] bytes,int offset,int length) 根据字节数据的一部分[offset, offset + length) 创建其所代表的字符串
public String(char[] value)
public String(char[] value,int offset,int count)
public String(String original) 实际开发中不会用
public class Demo1 {
public static void main(String[] args) {
// public String()
String string = new String(); // ""
//System.out.println(string);
// public String(byte[] bytes)
// 'a' -> 97
// abcde -> {97, 98, 99, 100, 101}
// abcde
byte[] bytes = {97, 98, 99, 100, 101};
String s = new String(bytes);
System.out.println(s);//abcde
//public String(byte[] bytes,int offset,int length)
// offset, 从数组的那个位置开始
// length, 从offset位置开始的字节数据的个数
// bcd
String s1 = string = new String(bytes, 1, 3);
System.out.println(s1);//bcd
//public String(char[] value)
char[] chars = {'a', 'b', 'c', 'd', 'e'};
String s2 = new String(chars);
System.out.println(s2);//abcde
//public String(char[] value,int offset,int count)
String s3 = new String(chars, 1, 3);
System.out.println(s3);//bcd
// public String(String original)
String s4 = "hello";
String s5 = new String(s4);
System.out.println(s4 == s5);//false
System.out.println(s5);//hello
//测试一下String equals方法比较的是字符串的内容,说明String类中一定重写了Object的equals方法
System.out.println(s4.equals(s5));//true
}
}
API
判断功能:
boolean equals(Object obj) //用来比较字符串的内容
boolean equalsIgnoreCase(String str) //忽略字符串大小写比较字符串内容
boolean contains(String str) //判断当前字符串对象是否包含目标字符串的字符序列
boolean startsWith(String str) //判断当前字符串对象是否已目标字符串的字符序列开头
boolean endsWith(String str)// 判断当前字符串是否以目标字符串对象的字符序列结尾
boolean isEmpty() 判断一个字符串是不是空字符串
获取功能:
int length() // 获取当前字符串对象中,包含的字符个数
char charAt(int index) // 获取字符串对象代表字符序列中,指定位置的字符(字符的位置从0开始编号)
int indexOf(int ch) // 在当前字符串对象中,查找指定的字符,如果找到就返回字符首次出现的位置,如果没找到返回-1
int indexOf(String str) // 查找当前字符串中,目标字符串首次出现的位置(如果包含) 找不到,返回-1, 这里的位置是指目标字符串的第一个字符在当前字符串对象中的位置
int indexOf(int ch,int fromIndex) // 指定,从当前字符串对象的指定位置开始,查找首次出现的指定字符的位置(如果没找到返回-1)
int indexOf(String str,int fromIndex) // 指定,从当前字符串对象的指定位置开始,查找 首次 出现的指定字符串的位置(如果没找到返回-1)
String substring(int start) // 返回字符串,该字符串只包含当前字符串中,从指定位置开始(包含指定位置字符)的那部分字符串
String substring(int start,int end) // 返回字符串,只包含当前字符串中,从start位置开始(包含),到end(不包含)指定的位置,这部分字符串 [start, end) ->[start, end - 1]
转化功能:
byte[] getBytes() // 获取一个用来表示字符串对象字符序列的字节数组
char[] toCharArray() // 获取的是用来表示字符串对象字符序列的,字符数组
static String valueOf(char[] chs)//把字符数组转换成字符串
static String valueOf(int i) //把整数转化成其字符串表示形式(数值没变,但是形式变了,由整型变成了字符串形式)
String toLowerCase() //把字符串全部转化为小写
String toUpperCase() // 把字符串全部装华为大写
String concat(String str) //字符串拼接 作用等价于 + 实现的字符串拼接
public class Demo3Transfer {
public static void main(String[] args) {
String zs = "zhangsan";
//byte[] getBytes()
byte[] bytes = zs.getBytes();
System.out.println(Arrays.toString(bytes));//[122, 104, 97, 110, 103, 115, 97, 110]
//char[] toCharArray()
char[] chars = zs.toCharArray();
System.out.println(Arrays.toString(chars));//[z, h, a, n, g, s, a, n]
char[] charBuffer = {'z', 'h', 'a', 'n', 'g', 's', 'a', 'n'};
//static String valueOf(char[] chs)
String s = String.valueOf(charBuffer);
System.out.println(s);//zhangsan
//static String valueOf(int i)
int i = 100;
String s1 = String.valueOf(i);
System.out.println(s1);//100
//String toUpperCase() // 把字符串全部装华为大写
String ss = "ZHaNgsAn";
String s2 = ss.toUpperCase();
System.out.println(s2);//ZHANGSAN
//String toLowerCase() //把字符串全部转化为小写
String s3 = ss.toLowerCase();
System.out.println(s3);//zhangsan
// String concat(String str) //字符串拼接 作用等价于 + 实现的字符串拼接
String a = "zhang";
String san = a.concat("san");
System.out.println(san);//zhangsan
替换功能
String replace(char old,char new) // 在新的字符串中,用新(new)字符,替换旧(old)字符
String replace(String old, String new) //在新的字符串中,用新的字符串(new), 替换旧(old)字符串
去除空格
String trim() //在新的字符串中,去掉开头和结尾的空格字符
" ab cd " -> “ab cd”
比较功能
int compareTo(String str)
int compareToIgnoreCase(String str) //忽略大小写的比较
该接口定义了一种比较规则: 比较结果,即大于,小于,等于关系,和int整数映射关系
对象1.compareTo(对象2)
1. 大于: 对象1 > 对象2 -> > 0 正整数表示大于关系
2. 小于: 对象1 < 对象2 -> < 0 负整数表示小于关系
3. 等于: 对象 等于 对象2 -> = 0 0表示相等关系