1. 常见的构造String的方式
直接构造
String str = “Hello World”;
将字符串封装成字符串对象
String str = new String(“Hello World”);
将字符数组的数据封装成字符串对象
char[ ] array = {‘a’, ‘b’, ‘c’};
String str = new String(array);
2. String类的不可变性
String 类是引用类型,是不可变的。
举例:
String str1 = "Hello";
String str2 = str1;
str1 = "World";
System.out.println("str1:"+str1);
System.out.println("str2:"+str2);
但是如果“修改”str1 的值str2 不会随之变化。
没有引用str1 之前,内存中是:
引用之后:
3.String类的方法摘要:
返回指定索引处的 char
值 。
String str = "HelloWorld";
System.out.println(str.charAt(0));
返回指定索引处的字符(Unicode 代码点)
String str = "HelloWorld";
System.out.println(str.codePointAt(3));
返回指定索引之前的字符(Unicode 代码点)
String str = "HelloWorld";
System.out.println(str.codePointBefore(2));
将指定字符串连接到此字符串的结尾
String str = "Hello";
System.out.println(str.concat("World"));
当且仅当此字符串包含指定的 char 值序列时,返回 true
String str = "Hello";
System.out.println(str.contains("Hell"));
System.out.println(str.contains("World"));
返回指定字符在此字符串中第一次出现处的索引
String str = "Hello";
System.out.println(str.indexOf("l"));
// 输出结果为 2
返回指定字符在此字符串中最后一次出现处的索引
String str = "HelloWorld";
System.out.println(str.lastIndexOf("l"));
// 输出结果为 8
返回此字符串的长度
String str = "HelloWorld";
System.out.println(str.length());
// 输出结果为 10
4.StringBuffer和StringBuilder
StringBuffer和StringBuilder的方法基本上相同
区别:
StringBuffer线程安全
StringBuilder线程不安全
StringBuffer append(xxx):拼接字符串
StringBuffer delete(int start,int end):删除指定范围的内容,左开右闭
StringBuffer replace(int start, int end, String str):替换指定范围的内容
StringBuffer insert(int offset, xxx):在指定位置插入指定的内容
StringBuffer reverse() :把当前字符序列逆转
public int indexOf(String str) : 返回指定子字符串在当前字符串中第一次出现处的索引
public String substring(int start,int end) :返回指定范围的子字符串
public int length() : 返回字符串的长度
public char charAt(int n ) : 获取指定索引处的字符
public void setCharAt(int n ,char ch) : 设置指定索引处的字符