1.String类
1.字符串最大的特点:一旦初始化就不可以改变。(不可改变的字符串内容而不是指向字符串的引用)
2.String s=“abc”;其中s是一个类类型变量,“abc”是一个对象。
3.String s1="abc";和String s2=new String(“abc”);
s1==s2;和s1.equals(s2);,==比较的是他们在内存中的存放地址,所以,除非是同一个new出来的对象,他们的比较后的结果为true,否则比较后结果为false(比如还有一个String s3=“abc”;那么s1==s3;为true)。因为String中复写了object类中的equals,所以这个equals比较的就不是基于他们在内存中的存放位置的地址值,而是字符串了,因为s1和s2字符串内容“abc”,所以s1==s2;结果为false,s1.equals(s2);结果为true。
s1和s2的区别在于s1在内存中存在一个对象,s2在内存中存在2个对象,new一个和“abc”。
4.常见的方法:
1.获取。
1.1 字符串长度:int length();
1.2 获取某个位置上的某个字符:char charAt(int index);
1.3 根据字符获取该字符在字符串中的位置:int indexOf(int ch);返回的是ch在字符串中第一次出现的位置。int indexOf(int ch,int fromIndex);返回的是从fromIndex指定位置开始,获取cd在字符串中出现的位置。int indexOf(String str);返回的是str位置。int lastIndexOf(int ch)从尾部开始查找。
2.判断。
2.1 字符串中是否包含某一个字符串。boolean contains(CharSequence s);CharSequences是一个字符串序列接口。indexOf(str)也可以用来判断,没有则返回-1,还能返回位置。
2.2 字符串是否有内容。bollean isEmpty();
2.3 字符串是否以指定内容开头。boolean startWith(String str);
2.4 字符串是否以指定内容结尾。boolean endWith(String str);
2.5 判断字符串是否相同。bollean equals(str);bollean equalsIgnoreCase(str);判断内容是否相同并忽略大小写。
3.转换。
3.1 将字符数组转换成字符串。
构造函数:String(char[] value)
String(char[] value,int offset,int count):将字符数组的一部分转换为字符串。offset位置开始count个字符转换为字符串。
静态方法:static String copyValueOf(char[] data);
static String copyValueOf(char[] data,int offset,int count);
3.2 将字符串转成字符数组。char[] toCharArray();
3.3 将字节数组转成字符串。
构造函数:String(byte[] value)
String(byte[] value,int offset,int count):
3.4 将字符串转成字节数组。byte[] getBytes();
3.5 将基本数据类型转换成字符串。比如:3+“”;和String.valueOf(3);是一样的。
static String valueOf(int i);
static String valueOf(boolean b);
static String valueOf(int i);
注意:字符串和字节数组在转换过程中是可以指定编码表的。
4.替换
String replace(oldchar,newchar);全替换,如果要替换的字符不存在,返回的还是原字符串。
5.切割
String[] split(regex);按照regex规则切。
6.子串。获取字符串中的一部分。
String substring(begin); 从指定位置到结尾
String substring(begin,end);从指定位置到end前一位,包含头不包含尾。substring(0,字符串对象.length());不需要-1.
7.转换,去除空格,比较。
7.1 将字符串转换成大写或者小写
String toUpperCase();
String toLowerCase();
7.2 将字符串两端的多个空格去除
String trim();怎么去除所有空格,可以用replace(“ ”,“”);或者replaceAll(" +","");
7.3 对两个字符串进行自然顺序的比较
int compareTo(string);从两个字符串的第一个字符开始比较,相减
练习一:去除字符串两端空格
练习二:反转字符串
练习三:获取一个字符串在另一个字符串中出现的次数
练习四:获取两个字符串中最大相同子串