所谓的String类其实就是熟悉的字符串。
String类的初始化:
1,String s="字符串内容";
2,String s=new String("字符串内容");
两种初始化方法一般情况下效果一样,但是有一点要注意,第一种方法与s相关的对象只有一个,就是字符串对象,而第二种方法与s相关的对象有两个,一个是new出来的String对象,另一个是初始化时传入的字符串参数对象。
还有一个注意点:
String s1="abc";
String s2="abc";
System.out.println(s1==s2);
结果是true,因为这样初始化字符串时,如果内存中已经有相同内容的字符串对象时,是不会在另外建立一个字符串对象的,因此,s1和s2指向同一个字符串。
===============================================================================================================================
字符串信息获取操作:
1,获取字符串内容长度:str.length(); 返回值为int类型,要注意的是数组是通过arr.length来获取,length是数组的一个int数据。
2,字符串(字符)的查找:
作用:在一个字符串中找出目标字符串(字符)的位置
str.indexOf(String s)//返回字符串s在str中首次出现的下标
str.indexOf(char c)//返回字符c在str中首次出现的下标
str.indexOf(String s,int n)//返回字符串s从下标为n的元素开始数起在str中首次出现的下标
str.indexOf(char c,int n)//返回字符c从下标为n的元素开始数起在str中首次出现的下标
str.lastIndexOf(String s)//返回字符串s从最后面数起在str中首次出现的下标
str.lastIndexOf(char c)//返回字符c从最后面数起在str中首次出现的下标
这些方法若找不到目标字符或字符串,返回-1
3,获取指定下标的元素:str.charAt(int index) 获取str中下标为index的元素
4,获取子字符串:
作用:在字符串中获取其中一段字符串
str.substring(int beginIndex)//获取str中从下标为beginIndex的元素开始到最后的子字符串
str.substring(int beginIndex,int endIndex)//获取str中从下标为beginIndex的元素开始到endIndex的子字符串,要注意的是,并不包括下标为endIndex的元素
==============================================================================================================================
字符串信息的判断操作:
1,判断字符串内容是否为空:str.isEmpty()//当str.length()等于0时返回true,否则返回false
2,判断字符串中是否包含目标子串:str.contains(String s)//当str包含子串s时返回true,否则返回false,indexOf()方法也可以判断,如果只需要判断,用contains,如果还要获取所处位置,用indexOf()
3,判断字符串是否以目标字符串开头:str.startsWith(String s)//如果str是以s字符串开头的返回true,否则返回false
3,判断字符串是否以目标字符串结尾:str.endsWith(String s)//如果str是以s字符串结尾的返回true,否则返回false
4,判断两字符串内容是否相同:
str.equals(String s)//判断str与s的内容是否相同,是返回true,否返回false,注意,String类重写了Object类中的equals方法,对于其他类,equals方法适用于判断两变量是否指向同一个对象
str.equalsIgnoreCase(String s)//在不区分大小写的情况下判断str与s的内容是否相同,是返回true,否则返回false
5,判断两个字符串的字典序:
str.compareTo(String s)//如果str字典序位于s之前,返回一个负数,如果str字典序位于s之后,返回一个正数,如果两字符串内容相同,返回0
===============================================================================================================================
字符串的转换操作:
1,字符数组转换成字符串
初始化时直接转换:String str=new String(char[] c)//把字符数组c转换为字符串并传给str
String str=new String(char[] c,int offset,int count)//把字符数组c中,从下标为offset的元素开始的count个字符转换成字符串并传给str
静态方法:str=String.copyValueOf(char[] c)//把字符数组c转换为字符串并传给str
str=String.copyValueOf(char[] c,int offset,int count)//把字符数组c中,从下标为offset的元素开始的count个字符转换成字符串并传给str
2,字符串转换成字符数组:char[] c=str.toCharArray()//把字符串str的内容传到字符数组中
==============================================================================================================================
字符串的替换操作:
1,把字符串中指定内容用其他内容去替代:
str=s.replace(char oldchar,char newchar)//把字符串s中的所有oldchar字符用字符newchar去替代,并把结果字符串传给str,注意s的内容并没有改变
str=s.replace(String old,String new)//把字符串s中的所有old字符串用字符串new去替代,并把结果字符串传给str,注意s的内容并没有改变
2,字母的大小写替换:
str.toLowerCase()//str中所有字母都变成小写形式
str.toUpperCase()//str中所有字母都变成大写形式
===============================================================================================================================
字符串的分割操作:String[] str=s.split(String sign)//字符串s根据标记字符串sign分割成多个字符串,并存在字符串数组str中
举例:s="ascabcahc";str=s.split("c"); 结果:str[0]=="as",str[1]=="ab",str[2]=="ah"