Java内没有内置的字符串类型,而是在标准Java类库中提供了一个预定义类:String类。
子串
String类中提供了一个方法substring,可以从一个较大的字符串中提取书一个较小的子串。
String str = "Hello world!";
String str1 = str.substring(0,3);
System.out.println(str1);
上面的代码输出的 str1=“Hel”
substring方法的参数截取了从第一个索引位置(包括第一个字符)到第二个索引位置(不包括第二个字符)之间的字符。
拼接
- Java中可以使用+号连接两个字符串,如下面所示:
String str1 = "Hello";
String str2 = " world";
String str = str1+str2;
System.out.println(str);
最终输出的str = “Hello world”。
- 当一个字符串与非字符串的值进行连接的时候,后者会被转换成为字符串。任何一个Java对象都可以转化成为字符串。下面的这种形式就是我们常用的:
int number = 3;
System.out.println("The number is "+number);
- 如果需要将多个字符串放在一起,用一个定界符分割,可以使用join方法:
String str = String.join("/", "S","M","L","XL");
这样输出的 str = " S/M/L/XL "。
不可变字符串
String类没有提供修改字符串的方法,所以是无法修改Java中字符串中的字符的,所以根据这一特性,Java文档中将String类对象称为不可变字符串。
检测字符串是否相等
- 检测字符串是否相等可以使用equals方法,相等返回true,不相等返回false。如果需要检测字符串是否相等,而不区分大小写,可以使用equalsIgnoreCase方法。
- 注意一定不要使用==来检测两个字符串是否相等, ==只能用来确定两个字符串的地址是否相同,而不能判断字符串的内容是否相同。
- 另外还可以使用compareTo 方法来判断两个字符串是否相等,如果相等的话,返回 0。
String str ="hello";
if(str.compareTo("Hello")==0)
空串与Null串
说到空串与Null串,大家可能会认为这两个不是同一种类型吗?其实不然,空串是一个字符串长度为0 的字符串,而Null串是一个字符串为Null。
- 检测空串的方法:
if(str.length()==0)
或者
if(str.equals(""))
- 检测Null串的方法:
if(str==null)
构建字符串
有时候,需要由较短的字符串构建字符串,例如:按键或来自文件中的单词。采用字符串连接的方法效率低下,每次连接字符串,都会生成一个新的String对象,即耗时,又浪费空间。所以,这个时候我们可以考虑使用StringBuilder类。
创建字符串构建器:StringBuilder builder = new StringBuilder();
添加字符串或字符:builder.append(str);
得到String对象:builder.toString();
StringBuilder类中还有许多方法,在这里我就不全部介绍了,感兴趣的可以在官方文档中查看。