String类
创建String字符串的3+1种方式
三种构造方法:
public String():创建一个空白字符串,不包含任何内容
public String(char[] array):根据字符数组的内容,来创建对应的字符串。
public String(byte[] array):根据字节数组内容,来创建对应的字符串。
一种直接创建字符串
public class StringDemo01 {
public static void main(String[] args) {
//1.创建空字符串
String str1 = new String();//说明字符串没有任何内容,不是null
System.out.println(str1);
//2.根据字符数组来创建字符串对象
char[] charArray={'A','B','C'};
String str2=new String(charArray);
System.out.println(str2);
//3.根据字节数组来创建字符串对象
byte[] byteArray={65,66,67};
String str3=new String(byteArray);
System.out.println(str3);
//4.直接创建
String str4="ABC";
String str5="ABC";
System.out.println(str4);
System.out.println(str2==str3);//false
System.out.println(str2==str4);//false
System.out.println(str3==str4);//false
System.out.println(str4==str5);//true
}
}
常用方法
判断功能的方法
- public boolean equals(Object anObject)将此字符串与指定的对象比较。
(1)当且仅当该参数不为 null,并且是与此对象表示相同字符序列的 String 对象时,结果才为 true。
(2)不但进行地址判断,还进行内容判断,只要符合其中一个条件就返回true
(3)建议:如果比较双方:一个常量一个变量,推荐把常量字符串放在前面,变量字符串放在后面(防止空指针异常) - public boolean equalsIgnoreCase(String anotherString)将此 String 与另一个 String 比较,不考虑大小写。
获取功能
-
public int length(): 返回字符串的长度
-
public String concat(String str): 将指定的字符串链接到该字符串的末尾
-
public char charAt(int index): 返回指定索引处的char值
-
public int indexOf(String str): 返回指定的字符串第一次出现在该字符串的索引值,如果没找到就返回-1
-
public String substring(int beginIndex): 返回一个字符串,该字符串从指定索引处的字符开始,直到此字符串末尾。
-
public String substring(int beginIndex, int endIndex): 返回指定索引区间的字符串
例子:
public static void main(String[] args) {
String str="haha";
//获取str的长度
int length=str.length();
System.out.println(length);
//拼接字符串
String str2="hello";
String str3="world";
String concat=str2.concat(str3);
System.out.println(concat);
//获取指定索引处的单个字符 索引的起始值是0
char c="hello".charAt(1);
System.out.println(c);
//查找参数字符串在该字符串当中第一次出现的索引值 indexOf(String str)
String str4="hello";
int i=str4.indexOf("l");
System.out.println(i);
//字符串截取 substring(int beginIndex) substring(int beginIndex,int endIndex)
String str5="helloworld";
//获取w后面的内容
int index=str5.indexOf("w");
String substring=str5.substring(index);
System.out.println(substring);
//获取索引值[4,7]
String str6=str5.substring(4,8);
System.out.println(str6);
}
转换功能
- public char[] toCharArray(): 将此字符串转换成新的字符数组
- public byte[] getBytes():使用指定的字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。
- public String replace(CharSequence oldString, CharSequence newString) :使用指定的字面值替换序列替换此字符串所有匹配字面值目标序列的子字符串。
例子:
public static void main(String[] args) {
// 把字符串转成字符数组
String str="helloworld";
char[] chars=str.toCharArray();
System.out.println("长度:"+chars.length);
for (int i = 0; i < chars.length; i++) {
System.out.print(chars[i]);
}
System.out.println("--------------------------");
// 把字符串转换成字节数组
byte[] bytes=str.getBytes();
System.out.println(bytes.length);
//字符串内容的转换 replace(old,new)
String str2="Nice to meet you";
//把str2中的'o'替换成'*'
String replace = str2.replace("o", "*");
System.out.println("替换后的字符串:"+replace);
}