String类
我们之前学过的char类型只能表示单个字符,不能表示由多个字符连接而成的字符串。在Java语言中将字符串当做对象类处理,可以通过java.lang包中的String类来创建字符串对象。
1.1.1创建字符串
在Java语言中字符串必须包含在一对双引号(” ”)之内.
创建字符串的常用构造方法:
String a=new String(“hello china”);
String b=”hello world”;
1.1.2连接字符串
在java中使用“+”运算符可以实现连接多个字符串的功能并且产生一个字符串对象。
[代码展示]
publicclass Join1{
public static void main(String args[]){
String s1=new String(“hello”);
String s2=new String(“world”);
String s=s1+” ”+s2;
System.out.println(s)
}
}
最后的运行结果是:hello world
1.1.3连接其他数据类型
在java里,字符串也可以同其他数据类型进行连接,连接的结果是其他类型的数据会直接转换成字符串。
[代码展示]
publicclass Join2{
public static void main(String args[]){
int number=56;
System.out.println(“中国有”+number+”个民族”);
}
}
最后的运行结果是:中国有56个民族
1.1.4获取字符串长度
使用String类的length方法可以获取字符串对象的长度,字符串的长度包括字符之间的空格。
[代码展示]
publicclass GetLength{
public static void main(String args[]){
String str=”I LOVE CHINA”;
int size=str.length();
System.out.println(size);
}
}
最后的运行结果是:12
1.1.5查找字符串
String类提供了两种查找字符串的方法;
1) indexOf(String s)该方法用于返回参数s 在指定字符中首次出现的位置。
2) lastIndexOf(String s)该方法用于返回指定字符串最后一次出现的索引位置。
注:Java中String 对象是用数组表示的,字符串的下表是0~length()-1
[代码展示]
publicclass SearchChar{
public staticvoid main(String args[]){
String str=”I LOVE CHINA”;
int size= indexOf(“L”)
int last= lastIndexOf (“I”)
System.out.println(“L首次出现的位置:”+size);
System.out.println(“I最后出现的位置:”+last);
}
}
最后的运行结果是:L首次出现的位置:2
I最后出现的位置:9
1.1.6获取指定位置的字符
使用charAt()方法可以返回指定位置的字符
[代码展示]
publicclass GetAtChar{
public static voidmain(String args[]){
String str=”I LOVE CHINA”;
char str1=str.charAt(3);
System.out.println(“字符串str位置是3的字符:”+ str1);
}
}
最后的运行结果是:字符串str位置是3的字符: V
1.1.7获取子字符串
通过String类的substring()方法可以对字符串进行截取。这些方法的共同点就是都是利用字符串的下标进行截取,而且字符串下标都是从0开始。
1)substring(int beginIndex)该方法返回的是从指定位置开始截取直到该字符串结尾的子串
2)substring(int beginIndex,endIndex)该方法返回的是从字符串某一位置开始截取直到某一位置结束的子串。
[代码展示]
publicclass GetSonChar{
public static void main(Stringargs[]){
String str=”ILOVE CHINA”;
String str1=str. Substring(3)
String str2=str. Substring(0,6)
System.out.println(“str1的值:”+ str1);
System.out.println(“str2的值:”+ str2);
}
}
最后的运行结果是:str1的值: OVE CHINA
str2的值: I LOVE
1.1.8去除空格
String的trim()方法返回的字符串自动忽略最前面的空格和尾部的空格
[代码展示]
publicclass GetTrim{
public static void main(Stringargs[]){
String str=” I LOVE CHINA ”;
System.out.println(“str原来的长度:”+ str.length());
System.out.println(“str去掉空格的长度:”+ str.trim().length();
}
}
最后的运行结果是:str原来的长度:16
str去掉空格的长度:12
1.1.9字符串替换
replace()方法可以实现将指定的字符或者字符串替换成新的字符或者字符串。
[代码展示]
publicclass ReplaceChar{
public static void main(Stringargs[]){
String str=”ILOVE CHINA”;
Stringnewstr=str.replace(“I,”o”);
System.out.println(“newstr”);
}
}
最后的运行结果是:o LOVE CHINA
1.1.10判断字符串的开始和结尾
startsWith()方法和endsWith()方法分别用于判断字符串是否以指定的内容开始或者结尾。这两个方法的返回值都为boolean类型。
[代码展示]
publicclass StartEnd{
public static void main(Stringargs[]){
String str=”ILOVE CHINA”;
boolean b1= str. startsWith(“I”);
boolean b2= str. endsWith(“B”);
System.out.println(“b1”);
System.out.println(“b2”);
}
}
最后的运行结果是:true
false
1.1.11按照字典的顺序比较两个字符串
String的compareTo()方法为按照字典的顺序比较两个字符串,该比较基于字符串中各个字符的Unicode值.如果该String对象位于参数字符数之前,则比较结果是一个负整数。如果该String对象位于参数字符串之后,则比较结果是一个正整数。
[代码展示]
publicclass Compare{
public static void main(Stringargs[]){
String str1=”a”;
String str2=”b”;
String str3=”c”;
System.out.println(str2+”compareTo”+str1+”:”+str2. compareTo(str1));
System.out.println(str2+”compareTo”+str3+”:”+str2. compareTo(str3));
}
}
最后的运行结果是:b compareTo a:1
b compareTo c:-1
1.1.12字母大小写转换
字符串中的toLowerCase()方法可将字符串中的所有字符从大写字母改为小写字母,而toUpperCase()可将字符串中的小写字母改为大写字母。
[代码展示]
publicclass LowUp{
public static void main(Stringargs[]){
String str=newString(”I love CHINA”);
Stringnewstr1=str.toLowerCase();
Stringnewstr2=str. toUpperCase();
System.out.println(“newstr1”);
System.out.println(“newstr2”);
}
}
最后的运行结果是:i love china
I love CHINA
1.1.13字符串分割
使用split( )方法可以使字符串按照指定的分割字符或者字符串对字符串进行分割,并将分割后的结果放进字符串数组中。
[代码展示]
publicclass ToSplit{
public static void main(Stringargs[]){
String str=newString(”I,love,CHINA”);
String[]newstr=str.split(“,”);
for(int i,i<newstr.length();i++){
System.out.println(“newstr[i]”);
}
}
}
最后的运行结果是:I
love
CHINA
1.1.14字符串生成器
String对象是不可改变的。每次使用 System.String类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。在需要对字符串执行重复修改的情况下,与创建新的 String对象相关的系统开销可能会非常昂贵。如果要修改字符串而不创建新的对象,则可以使用System.Text.StringBuilder类。例如,当在一个循环中将许多字符串连接在一起时,使用 StringBuilder类可以提升性能。
常用方法:append()方法:
该方法用于向字符串生成器中追加内容
[代码展示]
publicclass Builder{
public static void main(Stringargs[]){
StringBuilder sb = new StirngBuilder();
sb.append("a").append("b").append("c");
System.out.println(sb);
}
}
最后的运行结果是:abc