前文介绍了类和对象的知识,本文介绍Java中字符串的使用。
一、字符串的定义与基本操作
在前面的介绍中,我们已经多次设计到了字符串的定义和使用。
字符串的变量的定义和赋初值有下面两种常用形式:
1.String 变量名 = “初始值”;
2.String 变量名 = new String (“初始值”);
1.字符串的+操作
字符串可以使用 + 运算符,可以是字符串 + 字符串,也可以是字符串 + 基本类型数据,后者是先把基本类型数据转化为字符串然后再执行 + 操作的。
例如:
String str1 = "hello" + "world!"//结果是helloworld!
String str2 = "123" + "hello"//结果是123hello
String str3 = str1 + "5"// 结果是helloworld!5
2.字符串的==操作
在基本类型数据中,==用来比较两个数据的值是否相等,如果相等就是true,不相等就是false。
对于字符串来说它是引用类型,==操作比较的是两个字符串的引用地址是否相同而不是在比较值。要比较字符串的值,可以使用String类自带的equals方法。
这里演示个小例子:
public static void main(String[] args) {
String str1 = "hello";
String str2 = "hel" ;
String str3 = str2 + "lo";
System.out.println(str1 == str3);
}
输出结果:false。
这是在比较两个字符串对象的地址,而不是内容。
public static void main(String[] args) {
String str1 = "hello";
String str2 = "hel" ;
String str3 = str2 + "lo";
System.out.println(str1.equals(str3));
}
输出结果:true。
这就是比较两个字符串的内容了。
这里简单介绍一下,以后我们还要在字符串常量池部分介绍这里的知识。
二、字符串的常用操作
1.字符串本质
这里首先介绍字符串的本质,字符串实质上就是char型的字符数组。
下面以"hello world"为例说明其在内存中的分配。
2.字符串常用方法及举例
下面列举了一些字符串的常用的方法:
方法名称 | 作用 |
length() | 获取字符串的长度 |
charAt(int) | 获取字符串中的一个字符 |
indexOf(String) | 判断传入的字符串在原字符串中第一次出现的位置 |
compareTo(String) | 判断两个字符串的大小 |
substring(int) | 截取字符串,从传入参数位置到字符串末尾 |
substring(int,int) | 截取字符串,从传入参数1位置到传入参数2位置(注意截取区间是左开右闭) |
split(String) | 按传入参数将字符串分割为字符串数组 |
contains(String) | 判断字符串是否包含传入的部分 |
这里方法的使用并没有什么难度,要注意方法之间的灵活使用。下面就演示几个简单的例子。
字符串分割:
String str = "明月松间照,清泉石上流。";
String[] str2 = str.split("间");
for (int i = 0; i < str2.length; i++) {
System.out.println(str2[i]);
}
输出结果:
明月松
照,清泉石上流。
判断是否包含子字符串:
String str = "明月松间照,清泉石上流。";
System.out.println(str.contains("明月"));
输出结果:
true
判断传入的字符串在原字符串中第一次出现的位置:
String str = "明月松间照,清泉石上流。";
System.out.println(str.indexOf(","));
输出结果:
5
截取字符串,从传入参数1位置到传入参数2位置:
String str = "明月松间照,清泉石上流。";
System.out.println(str.substring(2,6));
输出结果:
松间照,
关于字符串剩下的之后,我们下篇博文继续来介绍。