字符串String思维导图
创建字符串
String类即字符串类型,像基本数据类型一样使用,用双引号括起来进行声明。在Java中用String类的构造方法来创建字符串变量。
1.String()
一个String对象,可表示一个空字符序列。
例 :使用String()方法初始化一个新创建的String对象。
String s=new String();
2.String(char a[])
用一个字符数组a创建String对象。
例 :使用String(char a[])方法创建String对象。
char a[]={'g','o','o','d'};
String s=new String(a);
等价于String s=new Sring("good")
//String String str3="字符串常量"; String str="字符串常量"; char[]c=new char[]{'我','很','好'}; String str4=new String(c); System.out.println("str4="+str4);
字符串操作
一.字符串连接
1.多个字符串连接
连接多个字符串时,在每两个连接的字符串之间用"+"相连,"+"就是字符串的连接符,连接之后生成一个新的字符串。
例 :使用"+"运算符完成对多个字符串的连接。
String s1=new String("hello");//声明String对象是s1
String s2=new String("world");//声明String对象是s2
String s=s1+" "+s2;//将对象s1和s2连接后的结果赋值给s
将s1、空格和s2进行连接,运行结果是"hello world".
Java中的字符串不能分开在两行中写。如果一个字符串太长,需要将这个字符串分在两行上书写,此时可以使用"+"将两个字符串联起来,并在加号处换行。
2.连接其它数据类型
在字符串和其他数据类型连接时,同样使用"+"连接符,连接之后的返回值是字符串。
当其他数据类型与字符串相连时会自动将其转换成字符串类型,然后进行连接。
只要“+”运算符的一个操作类型是字符串,编译器就会将另外的操作类型转换成字符串形式,所以应谨慎地将其他数据类型与字符串相连。
获取字符串信息
字符串变量是一个对象,可以通过相应的方法获取字符串的有效信息,如获取字符串的长度,获取指定字符串的索引位置等。
1.获取字符串长度
使用String类的length()方法可获取声明的字符串对象的长度。
str.length();
str:指定的字符串对象。
返回值:返回指定字符串的长度。
例 :使用length()方法得出字符串的长度。
String s=“We are students”;
System.out.println("字符串的长度是:"+s.length());
获取字符串“We are students”的长度,运行结果是"字符串的长度是:15",很明显在计算字符串长度时字符串中的空格也被计算在内了,这点应该注意。
//字符串信息 str="字符串常量字符串常量"; System.out.println("字符串长度="+str.length());
2.获取指定子符的索引位置
String类提供了indexof()和lastindexof()方法来获取指定字符的索引位置,不同的是,indexof()方法返回的是搜索的字符首次出现位置的索引,而lastindexof()方法返回的是搜索的字符最后出现位置的索引。
(1)indexof()方法
调用字符串的indexof()方法搜索s时,会从字符串的起始位置依次搜索,返回s首次出现位置的索引,如果没有检索到字符串s,返回-1.
str.indexof(substr)
str:任意字符串对象
substr:要搜索的字符。
返回值:返回字符序列中第一次出现该字符的索引。
//字符串信息
str="字符串常量字符串常量";
String str="字符串常量"; //查找字符串中子字符串的位置,返回找到之后的索引值 System.out.println("常字的位置="+str.indexOf("常")); System.out.println("常量的位置="+str.indexOf("常量")); //查找不到,返回-1 System.out.println("我的位置="+str.indexOf("我")); System.out.println("最后常字的位置="+str.lastIndexOf("常"));//还是从前面往后数
(2)lastindexof()方法
调用字符串的lastindexof()方法搜索s时,会从字符串的起始位置依次搜索,返回s最后出现位置的索引,如果没有检索到字符串s,返回-1.
str.lastindexof(substr)
str:任意字符串对象。
substr:要搜索的字符串。
返回值:返回字符序列中最后出现的该字符的索引。
如上图所示、
3.获取指定索引位置的字符
使用String类的charAt()方法可获取指定索引处的字符,返回字符的索引。
str.charAt(int index)
str:任意字符串
int index:整型值,用于指定要返回字符的下标
返回值:返回指定索引位置的字符
//获取字符 char c1=str.charAt(0); System.out.println("c1="+c1);
判断字符串
1.判断字符串是否相等
(1)equals()方法
使用equals()方法对字符串进行比较时是严格区分大小写的,在此条件下,如果两个字符串仍具有相同的字符和长度,则返回true,否则返回false。
str.equals(String otherstr)
str:参与比较的一个字符串对象
otherstr:参加比较的另一个字符串对象
返回值:返回boolean类型
String str3="字符串常量"; String str="字符串常量"; char[]c=new char[]{'我','很','好'}; String str4=new String(c); System.out.println("str4="+str4); String str1=new String("字符串常量");//构造方法 String str2=new String("字符串常量");//new开辟新的内存空间 System.out.println("str="+str); System.out.println("str1="+str1); System.out.println("str2="+str2); System.out.println("str1和str2是否==:"+(str1==str2)); System.out.println("str和str1是否==:"+(str==str1)); System.out.println("str和str2是否==:"+(str==str2)); System.out.println("str和str3是否==:"+(str==str3)); //==运算,比较的是内存地址是否相等 System.out.println("str1和str2是否相同:"+str1.equals(str2)); System.out.println("str和str1是否相同:"+str.equals(str1));