字符串常用的操作包括:对字符串的连接,字符串的比较,字符串的截取,字符串的查找,字符串大小写转换,字符串内容的替换和获取字符串某位置的字符。
1、字符串的连接
字符串的连接是将两个或两个以上的字符换进行拼接。String类中提供了字符串连接的cancat()方法。其格式如下:
string1.concat(string2);
示例如下:
public class Test{
public static void main(String[] args){
String string1=“Hello”;
String string2=“World”;
String string3=string1.concat(string2);//使用concat连接两个字符串
System.out.println(string1);
System.out.println(string2);
System.out.println(string3);
}
运行结果如下:
Hello
World
Hello World
上述方法用了concat方法进行了字符串之间的连接,也可以使用操作符“+”进行连接,代码如下:
public class Test{
public static void main(String[] args){
String string1=“Hello”;
String string2=“World”;
String string3=string1+string2;//使用+连接两个字符串
System.out.println(string3);
}
运行结果如下:
Hello World
2、字符串的比较
在String类中定义的字符串的比较方法有三种:
compareTo(),equals()和equalsIgnoreCase()。以下分别进行介绍
(1)compareTo()方法
这个比较的是两个字符串在排序时的顺序。其过程比较实际上是两个字符串中相同位置上的字符按Unicode中顺序逐个比较的结果。如果compareTo方法返回一个大于0的整数,则表示被操作字符串排在参数字符串的后面;如果返回小于0的整数,则表示被操作字符串排在参数字符串的前面。
(2)equals()方法
当参数是字符串时,可以用来比较两个字符串的值是否相同。
(3)equalsIgnoreCase()方法
比较的是连个字符串的值是否相同,与equals不同,这种比较是忽略大小写的。
下面我们通过代码给大家进行演示:
public class Test{
public static void main(String[] args){
String a1="hello";
String a2="HELLO";
int result=a1.compareTo(a2);
if(result>0){
System.out.println("compareTo()比较,a1排在a2的后面");
System.out.println("compareTo()比较,a1排在a2的前面");
boolean flag=a1.equals(a2);
if(flag==false){
System.out.println("equals()方法比较,a1与a2不相等");
else{
System.out.println("equals()方法比较,a1与a2相等");
boolean fav=a1.equalsIgnoreCase(a2);
if(fav==false){
System.out.println("equalsIgnoreCase()方法比较,a1和a2不相等");
else{
System.out.println("equalsIgnoreCase()方法比较,a1和a2相等");
}
}
}
运行结果如下:
compareTo()方法比较:a1排在a2后面
equals()方法比较:a1与a2不相等
equalsIngoreCase()方法比较:a1与a2相等
注意:当==两边是基本数据类型如int,double,boolean时是比较值是否相同;当等号两边是对象时比较的是两个对象是否是同一个对象(判断标准是看其内存地址是否相同)。
3、字符串截取
String类中提供substring()方法来实现截取功能,使用格式如下:
String substring(int beginIndex);
或
String substring(int beginIndex,int endIndex);
字符串第一个字符的位置为0.第一种是只有开始位置,它截取的是从这个位置开始一直到字符串的结尾部分。第二种是开始和结尾位置都有,那么只截取指定位置开始和结尾的部分。例如:
public class Test{
public static void main(String[] args){
String string1=“i love java”;
String subs1=string1.substring(2);
String subs2=string1.substring(2,6);
System.out.println(“从开始位置2截取”);
System.out.println(subs1);
System.out.println(“从位置2-6截取”);
System.out.println(subs2);
}
运行结果:
从开始位置2截取
love java
从位置2-6截取
love
注意:空格也要算字符长度或字节长度
4、字符串查找
字符串的查找指在一个字符串中查找另一个字符串,String中提供了indexOf方法实现查找功能。使用格式如下:
str,indexOf(string substr)
或
str.indexOf(string substr,formIndex)
第一种是从指定位置字符串开始查找,第二种是从指定字符串并指定开始位置查找。例如:
public class Test{
public static void main(String[] args){
String string1=“i love java”;
String string2=“love”;
int serindex1=string1.indexOf(string2); //从开始位置查找"love"字符串
int serindex2=string.indexOf(string2,2); //从索引2位置开始查找love
字符串
if(serindex1>=0)
System.out.println(“love 在 i love java 中第“+serindex1+”个位置出现”);
System.out.println(“love 在i love java 中未出现”);
if(serindex2>=0)
System.out.println(“从索引2位置开始查找,love 在 i love java 中第“+serindex1+”个位置出现”);
System.out.println(“从索引2 位置开始查找,love 在i love java 中未出现”);
}
运行结果如下:
love 在 i love java 中第2个位置出现
从索引2位置开始查找,love 在 i love java 中第2个位置出现