1.概述
①.String是Java已经定义在Java.lang里的类,使用时无需导包
②.所有字符串都是String类的对象
③.字符串一旦赋值就不可更改
2.赋值方法
构造方法 | 说明 | |
直接构造 | String name="阿利斯塔" | |
new | public String() | 创建空字符串 |
new | public String(String original) | 根据传入字符串创建 |
new | public String(char []c) | 根据传入字符数组创建 |
new | public String(byte []c) | 根据传入字节数组创建 |
package csdn;
public class demo1 {
public static void main(String[] args) {
//直接构造
String name="阿利斯塔";
System.out.println(name);//阿利斯塔
//new 空白字符串
String s=new String();
System.out.println(s);//""
//new 指定字符串
String s1=new String("亚托克斯");
System.out.println(s1);//亚托克斯
//new 指定字符数组
char[] c={'a','b','c'};
String s2=new String(c);
System.out.println(s2);//abc
//new 指定字节数组
byte[] b={98,99,100};
String s3=new String(b);
System.out.println(s3);//bcd
}
}
3.字符串比较
之前在比较基本数据类型时也有用过字符串比较
当时的做法是直接使用"=="进行比较
package csdn;
public class demo1 {
public static void main(String[] args) {
String s1="拉克丝";
String s2="金克斯";
System.out.println(s1==s2);//false
}
}
但是要注意的是,"=="只能用于比较直接赋值的字符串,对于new的引用数据类型不适用(原因:"=="比较基本数据类型时,参与比较的是数值大小。而"=="比较引用数据类型时,参与比较的是地址值)
所以String提供了两个方法
方法 | 说明 |
boolean equals | 完全一样才返回True |
boolean equalsIgnoreCase | 无视大小写 |
package csdn;
public class demo1 {
public static void main(String[] args) {
String s1="abc";
String s2="Abc";
boolean r1=s1.equals(s2);
System.out.println(r1);//false
boolean r2=s1.equalsIgnoreCase(s2);
System.out.println(r2);//true
}
}
4.遍历字符串
用到的方法:
①public char charAt(int n); 根据索引返回对应字符
②public int length(); 返回字符串长度
package csdn;
import java.util.Scanner;
public class demo1 {
public static void main(String[] args) {
//键盘录入一个字符串
Scanner sc=new Scanner(System.in);
String s=sc.next();
//遍历
for(int i=0;i<s.length();i++){
char c=s.charAt(i);
System.out.println(c);
}
}
}
5.StringBuilder
StringBuilder创建后内容可变,用于提高操作效率
常用方法:
方法 | 说明 |
public StringBuilder append(all kinds) | 添加数据 返回对象本身 |
public StringBuilder reverse() | 反转内容 |
public int length() | 返回对象长度 |
public String toString | 将StringBuilder对象转化成String类型 |
package csdn;
public class demo1 {
public static void main(String[] args) {
StringBuilder sb=new StringBuilder("阿利斯塔");
sb.append("是牛头");
System.out.println(sb);//阿利斯塔是牛头
int len=sb.length();
System.out.println(len);//7
sb.reverse();
System.out.println(sb);//头牛是塔斯利阿
String s=sb.toString();
System.out.println(s);//头牛是塔斯利阿
}
}
6.StringJoiner
StringJoiner也可以看作内容可变的容器,较StringBuilder而言,StringJoiner更简洁方便
构造方法:
public StringJoiner(间隔符号) |
public StringJoiner(间隔符号,开始符号,结束符号) |
常用方法:
public StringJoiner add() | 添加内容,返回对象本身 |
public int length() | 返回内容长度 |
public String toString() | 将StringJoiner对象转换成String对象 |
package csdn;
import java.util.StringJoiner;
public class demo1 {
public static void main(String[] args) {
StringJoiner sj=new StringJoiner("~","[","]");
sj.add("阿利斯塔").add("是牛头");
System.out.println(sj);//[阿利斯塔~是牛头]
int len=sj.length();
System.out.println(len);//10
String s=sj.toString();
System.out.println(s);//[阿利斯塔~是牛头]
}
}
总结:
String 表示字符串类,有基本的操作方法
StringBuilder内容可修改,可以高效拼接,进行内容反转
StringJoiner内容可修改,可以高效方便地拼接