我在另一篇文章写了数据类型,其中有一个数据类型叫“char”,char类型只能表示单个字符,不能表示由多个字符连接而成的字符串。
Java中为了表示一串字符,可以使用称为String(字符串)的数据类型。
1.创建字符串
(1)可以使用构造方法来创建字符串
例如:
String s = new String("good");
(2)引用字符常量来创建字符串变量
例如:
String str1 str2;
str1="good";
str2="good";
此时str1与str2引用相同的字符串常量,也具有相同的实体。
示意图如下:
2.字符串常用方法
(1)连接字符串
- 使用"+"运算符可实现连接多个字符串的功能
- 或者使用concat()将其连接成新字符串
例如:
String s1 ="hello";
String s2 ="String";
String s = s1+" "+s2;
String s3 = s1.concat(s2);
输出结果:
hello String
(2)获取字符串长度
使用length()方法可获取字符串长度
语法如下:
str.length();
其返回值为一个int
(3)字符串查找与获取
- indexOf(String s):返回索引位置
此方法用于返回参数字符串s在指定字符串中首次出现的索引位置。
语法如下:
str.indexOf(substr)
例如:
String str = "good";
int size = str.indexOf("o");
运行结果:
1
- charAt(int index):指定索引处的字符返回
语法如下:
str.charAt(index);
例如:
String str = "good";
int size = str.charAt("1");
运行结果:
o
(4)字符串比较
String类有如下方法来用于两个字符串之间的比较。
方法 | 描述 |
---|---|
equals(s1) | 如果字符串等于字符串s1,则返回true |
equalsIgnoreCase(s1) | 和equals()一样;不区分大小写 |
compareTo(s1) | 返回一个大于0、等于0、小于0的整数,表名该字符串是否大于、等于、或小于s1 |
compareIgnoreCase(s1) | 和compareTo()用一样;不区分大小写 |
startsWith(prefix) | 如果字符串以特定前缀开始,则返回true |
endsWith(suffix) | 如果字符串以特定后缀开始,则返回true |
contains(s1) | 如果s1是该字符串的子字符串,则返回true |
注意:
操作符 == 来比较两个字符串值能检测s1和s2是否指向同一个对象,不会告诉你内容是否相等。因此不能用操作符 == 来比较字符串之间的内容。
compareTo()是按字典顺序(Unicode码的顺序来进行比较)
(5)字符串大小写转换
- toLowerCase()将字符串转换为小写
- toUpperCase()将字符串转换为大写
(6)字符串分割
- spilt(String sign)
此方法可根据给定分割符将字符串进行拆分
语法如下:
str,spilt(sign)
- spilt(String sign,int limit)
此方法可根据给定分割符将字符串进行拆分,并限定分割次数。
语法如下
str.spilt(sign,limit)
(7)format()格式化字符串
此方法用于创建格式化的字符串。
语法如下:
str.format(String format,Object...agrs)
例如:
Date date = new Date();//创建对date对象
String s = String.format("%te",date);//通过format()方法对date进行格式化