Java | String类
一、String类的两种实例化方法
1.利用String类中提供的构造方法来生成对象
String(Stringoriginal)可以直接接收一个String类的对象,重新实例化一个新的String对象。
String s1 = new String(“abc”);
2.还可以采用直接赋值的方式进行对象的实例化
String s2 =“abc”;
publicclassStringDemo1 {
publicstaticvoidmain(String[]args){
Stringstr1=newString("hello");//String类中提供的构造方法构造str1对象
Stringstr2="world";//字符串直接赋值的方式构造str2对象
System.out.println(str1+" "+str2);
}
}
二、字符串的比较
publicclassStringDemo1 {
publicstaticvoidmain(String[]args){
Stringstr1=newString("hello");//String类中提供的构造方法构造str1对象
Stringstr2="hello";//字符串直接赋值的方式构造str2对象
Stringstr3=str1;
System.out.println("str1==str2------>"+ (str1==str2));//false
System.out.println("str1==str3------>"+ (str1==str3));
System.out.println("str2==str3------>"+ (str2==str3));
}
}
实际上“==”运算符,比较的是两个对象在内存中的地址是否相同。如果想比较字符串的内容是否相等,需要使用String类中的方法equals()。这个方法是比较两个字符串的内容是否完全相同。
此方法的定义如下:(查API文档)
public boolean equals(Object anObject)
利用equals方法比较三个字符串的内容是否两两相同
publicclassStringDemo1 {
publicstaticvoidmain(String[]args){
Stringstr1=newString("hello");//String类中提供的构造方法构造str1对象
Stringstr3=str1;
System.out.println("str1==str2------>"+ (str1.equals(str2)));//false
System.out.println("str1==str3------>"+ (str1.equals(str3)));
System.out.println("str2==str3------>"+ (str2.equals(str3)));
}
}
三、一个字符串常量实际上就是一个String类的匿名对象
一个字符串是使用“”括起来的一串字符,一个字符串本身就是一个String类的匿名对象
publicclassStringDemo1 {
publicstaticvoidmain(String[]args){
Stringstr2="hello";//字符串直接赋值的方式构造str2对象
System.out.println("hello".equals(str2));
} }
四、字符串常用操作方法
1.字符与字符串
在c中字符串实际上就是字符数组,表示一组字符
。根据字符串中的索引位置找到指定位置的字符
public charcharAt(int index)index下标是从0开始的
。将字符串变为字符数组
public char[]toCharArray()
。将字符数组变为字符串
publicString(char[] value)
public String(char[] value, int offset, int count)
publicclassStringDemo1 {
publicstaticvoidmain(String[]args){
Stringstr="hello world";
charc=str.charAt(0);
System.out.println(c);
charch[] =str.toCharArray();
for(inti=0;i
System.out.print(ch[i]+" ");
Stringstr1=newString(ch);
System.out.print("\n");
System.out.println(str1);
Stringstr2=newString(ch,0,5);
System.out.println(str2);
} }
2.字节与字符串
字符串和字节数组之间可以相互转换
String-àbyte[]
public byte[]getBytes()
byte[]àString
publicString(byte[] bytes)
3.判断字符串的开头和结尾是否为指定字符串
开头:public booleanstartsWith(Stringprefix)
结尾:public booleanendsWith(Stringsuffix)
经常会用在验证操作中
publicclassStringDemo1 {
publicstaticvoidmain(String[]args){
Stringstr="**hello world##";
System.out.println(str.startsWith("**"));
System.out.println(str.endsWith("##"));
} }
4.字符串中的内容替换
publicStringreplaceAll(Stringregex,Stringreplacement)
publicclassStringDemo1 {
publicstaticvoidmain(String[]args){
Stringstr="hello world";
StringnewStr=str.replaceAll("l","x");
System.out.println(newStr);
} }
5.字符串截取
全部截取:publicStringsubstring(int beginIndex)
部分截取:publicStringsubstring(int beginIndex, int endIndex)
publicclassStringDemo1 {
publicstaticvoidmain(String[]args){
Stringstr="hello world";
Stringstr1=str.substring(6);
System.out.println(str1);
Stringstr2=str.substring(0,5);
System.out.println(str2);
} }
6.字符串拆分
可以将字符串按照指定的内容拆分成字符串数组
publicString[]split(Stringregex)
将字符串“Hello world zhang san”,以空格拆分成四个单词
publicclassStringDemo1 {
publicstaticvoidmain(String[]args){
Stringstr="hello world zhang san";
Strings[] =str.split(" ");
for(Stringst:s){
System.out.println(st);
} } }
7.字符串查找
在一个字符串中查找是否存在指定的内容
取得指定字符串的位置
public intindexOf(Stringstr)
public int indexOf(Stringstr, int fromIndex)
publicclassStringDemo1 {
publicstaticvoidmain(String[]args){
Stringstr="hello world";
System.out.println(str.indexOf("l"));//l第一次出现的位置
System.out.println(str.indexOf("l",5));//在第5个位置之后l出现的位置
} }