目录
概念
- 字符串一旦初始化就不可以被改变
- 字符串是一个常量,也是一个对象,是一个特殊的对象
- String被final修饰是不能被继承的,字符串是常量,在内存中可以共享 。
String s1="abc"; //s1是一个类类型变量,"abc"是一个对象,字符串最大特点:一旦初始化就不可以被改变
String s2=new String("abc");
//s1和s2有什么区别?
s1在内存中有一个对象
s2在内存中有两个对象(new是一个,“abc”是一个)
String类的equals方法
==是直接比较的两个对象的堆内存地址,如果相等,则说明这两个引用实际是指向同一个对象地址的。
在Object类型的equals方法是直接通过==来比较的,和==是没有任何区别的,但是String类重写了Object类中的equals方法,该方法用于判断字符串是否相同
String s1="abc";
String s2="abc";
System.out.println(s1==s2); //ture 因为字符串存放在常量池中,所以重复的字符串不会在新增一个地址
字符串操作
String类适合用于描述字符串事物,那么它就提供了多个方法对字符串进行操作
获取
1.字符串中的包含的字符数,也就是字符串的长度
int length(): //获取长度
2.根据位置获取位置上某个字符
char charAt(int index);
3.根据字符获取该字符在字符串中位置
int indexOf(int ch); //返回的是在ch在字符串中第一次出现的位置
int indexOf(int ch,int fromIndex); //从fromIndex指定位置开始,获取ch在字符串中出现的位置
int indexOf(String str); //返回的是str在字符串中第一次出现的位置
int indexOf(string str,int fromIndex); //从fromIndex指定位置开始,获取str在字符串中出现的位置
int lastIndexOf(int ch);
判断
1字符串中是否包含某一个子串
boolean contains(str);
//特殊之处:indexOf(str):可以索引str第一次出现位置,如果返回-1,表示该str不在字符串中存在,所以,也可以用于对指定判断是否包含。而且该方法既可以判断,又可以获取出现的位置
2.字符串是否有内容
boolean isEmpty(); //原理是判断长度是否为0
3.字符串是否是以指定内容开头
boolean startsWith(str);
4.字符串是否是以指定内容结尾
boolean endsWith(str);
5.判断字符串内容是否相同,复写了Object类中的equals方法
boolean equals(str);
6.判断内容是否相同,并忽略大小写
boolean equalsIgnoreCase();
转换
1.将字符数组转成字符串
构造函数:
String(char[])
String(char[],offset,count); //将字符数组中的一部分转成字符串
静态方法:
static String copyValueOf(char[])
static String copyValueOf(char[]data,int offset,int count)
static String valueOf(char[])
2.将字符串转成字符数组
char[] toCharArray();
3.将字节数组转成字符串
String(byte[])
String(byte[],offset,count); //将字节数组中的一部分转成字符串。
4.将字符串转成字节数组
byte[] getBytes();
5.将基本数据类型转成字符串
static String valueOf(int)
static String valueOf(double)
//将int类型转换为string类型
3+"";
String.valueOf(3);
特殊:字符串和字节数组在转换过程中,是可以指定编码表的
替换
String replace(oldchar,newchar);
切割
String[] split(regex);
子串
获取字符串中的一部分
String substring(begin); //从指定位置开始到结尾
String substring(begin,end); //包含头,不包含尾,
s.substring(0,s.length()); //获得整个字符串
转换,去除空格,比较
1.将字符串转成大写或者小写
String toUpperCase();
String toLowerCase();
2.将字符串两端的多个空格去除
String trim();
3.对两个字符串进行自然顺序的比较
int compareTo(string)