在Java中有一个专门操作字符串的类Java.lang.String
1创建字符串
声明:
String 字符串标识符
因为标识符需要初始化才能用,所以:String 字符串标识符=字符串;
举例:
String aStr=null;//初始化为空值
String bStr=“”;//初始化为空字符串
String cStr=“ABC”;//初始化为“ABC”
在创建字符串对象时,可以用上面的双引号来初始化 也可以通过构造方法创建并初始化对象;
举例
String aStr=“ABC”;
String bStr=new String(“ABC”);
下面的代码均表示创建一个空的字符串对象
String aStr=“”;
String aStr=new String();
String aStr=new String(“”);
2连接字符串
使用 + 运算符
对于+运算符,如果有一个操作元为String类型,则作为字符串连接运算符。这是字符串可以跟任何类型的数据进行字符串连接操作,若该数据为基本类型则会自动转化为字符串
若为引用类型,则会自动调用所引用对象的toString()方法获得一个字符串,然后进行字符串的连接;
3字符串操作
比较字符串
String类中的equals()方法
用于判断两个字符串是否相等。定义:
public boolean equals(String str)
equal()方法的入口参数为想要比较的字符串对象,返回值为boolean型。true or false
例如 比较字符串“A”与“a”
String str =“A”;
String b =str.equals(“a”);
false
equalsIgnoreCase()方法
不区分大小写 “a” “A”相等
startsWith()方法与endsWith()方法
依次用来判断字符串是否以指定的字符串开始或结束
定义:
public boolean startsWith(String prefix)
public boolean endsWith(string suffix)
方法的入口参数为想要比较的字符串对象,返回值为boolean型。
例如判断下列字符串”ABCDE“是否以“a‘开始,以字符串”DE“结束
String str= “ABCDE”;
boolean bs=str.startsWith(“a”);
boolean be=str.endsWith(“DE”);
结果 bs为false be为true;
startsWith()方法还有一个重载方法,用来判断字符串从索引位置开始是否为指定字符串
方法定义:
public boolean starsWish(String prefix,int toffset)
方法starsWish(String prefix,int toffset)的第二个入口参数为开始索引位置
例如下面的代码判断字符串“ABCDE”从索引的第二位开始是否为“CD”;
String str=“ABCDE”;
boolean b=str.startsWish(“CD,2”);
结果true
compareTo()方法
该方法用于判断一个字符串是大于,等于还是小于另一个字符串。判断字符串大小的依据是根据它们在字典中的顺序决定的
compareTo()方法定义:
public int compareTo(String str)
compareTo()方法的入口参数为比较的字符串对象,返回值为int类型,如果两个字符串相等返回0;如果大于字符串str返回一个整数;小于str返回负数;
举例:判断“A”“B”“C”之间的大小
String aStr=“A”;
String bStr=“B”;
String dStr=“D”;
String bStr=“B”;
System.out.println(bStr.compareTo(aStr));//字符串“B”与“A”的比较结果为1
System.out.println(bStr.compareTo(b2Str));//字符串“B”与“B”的比较结果为0
System.out.println(bStr.compareTo(dStr));//字符串“B”与“C”的比较结果为-2
2.获取字符串的长度
字符串是一个对象,在这个对象中包含length属性,他是该字符串的长度
使用String类中的length()方法可以获取该属性值
举例:获取“MingRiSoft”长度的代码
String nameStr=“MingRiSoft”;
int i=nameStr.length();//获取字符串的长度为10
3字符串大小写的转换
在String类中提供了两种实现字母大小写转换的方法toLowerCase()和toUpperCase()
返回值为转换后的字符串toLowerCase()将字符串中的大写字母转换为小写字母
toUpperCase()将字符串的小写字母转换为大写字母
代码:
String str=“AbCDefGh”;
String 1str=str.toLowerCase();//转换为小写后得到的字符串“abcdefgh”
String uStr=str.toupperCase();//转换为大写后得到的字符串为“ABCDEFGH”
4查找字符串
String提供了两种查找字符串的方法indexof() lastIndex()
indexof()用于搜索字符 字符串首次出现的位置
lastIndex()用于搜索字符或字符串最后一次出现的位置
它们的返回值均为字符或字符串被发现索引的位置,如果未搜索则返回-1
(1)indexof()用于搜索字符 字符串首次出现的位置
(2)lastIndex()用于搜索字符或字符串最后一次出现的位置
(3)indexOf(String str) 用于获取指定字符串在原字符串中第一次出现的索引
(4)lastIndexOf(String str) 用于获取指定字符串在原字符串中最后一次出现的索引
(5)indexOf(int ch,intstartIndex) 用于获取指定字符串在原字符串中指定索引位置开始第一次的索引
(6)lastOf(int ch,int startIndex) 用于获取指定字符串在原字符串中指定索引位置开始最后一次的索引
(7)indexOf(String str,int startIndex) 用于获取指定字符串在原字符串中指定索引位置开始第一次出现的索引
(8)lastIndexOf(String str,int startIndex)用于获取指定字符串在原字符串中指定索引位置开始最后一次出现的索引
String str=“mingrikeji”;
int i=str.indexOf(‘i’);
System.out.println(“字符i第一次出现在索引:”+i);//索引值是1
i=str.lastIndexOf(‘i’);
System.out.println(“字符i最后一次出现在索引:”+i);//索引值是9
i=str.lastIndexOf(“ri”);
System.out.println(“字符串ing第一次出现在索引:”+i);//索引值是4
i=str.lastIndexOf(“ri”);
System.out.println(“字符串ing最后一次出现在索引:”+i);//索引值是4
i=str.lastIndexOf('i',4);
System.out.println("从第5个字符开始,字符I第一次出现在索引:"+i);//索引值是1
5 从现有字符串中截取子字符串
String类中 方法substring()可以从现有字符串中截取子字符串,有两个重载方法:
public String substring(int beginIndex)
public String substring(int beginIndex,int endIndex)
代码:
String str=“”ABCDEF;
System.out.println(str.substring(3));//截取到的字符串为“DEF”
方法substring(int beginIndex,int endIndex)用来截取从起始索引位置beginIndex到终止endIndex的字符串
截取的字符串包含起始索引位置beginIndex对应的字符但不包括终止endIndex上对应的字符。
String str=“ABCDEF”;
System.out.println(str.substring(2,4));//截取的字符为"CD"
6去掉字符串的首尾空格
可以同String类的trim()方法
public String trim()
举例:
String str=“ ABC ”;//定义一个字符串,首尾有空格
System.out.println(str.length());//长度5
String str2=str.trim();//用trim方法去首尾空格
System.out.println(str2.length());//长度3
7.替换字符串中的字符或子串
可以用String类中的replace()方法,将原字符串中的某个字符替换为指定的字符,从而得到一个新字符串
定义;
public String replace(int oldChar,int newChar)
举例 把“NBA-NBA-NBA”换成“CBA-CBA-CBA”
String str=“NBA-NBA-NBA”;
System.out.println(str.replace(‘N’,‘C’);//输出新字符为“CBA-CBA-CBA”
8分割字符串
String类提供了两个重载split()的方法,以String型数组的方式返回
定义:
public String【】split(String regex,int limit)
split(String regex,int limit)中第一个入口参数regex为分割规则,第二个入口参数limit用来设置分割规则的次数,所以影响返回结果数组的长度
如果limit大于0,则分割规则最多(limit-1)若limit为0,数组中最后的所有空字符要被丢弃