1.String类基础
1.声明和创建:
(1)直接声明创建:
String str = "Hello";
这种方式创建字符串实际是将str引用了常量池中的Hello字符串,可以避免创建重复的字符串对象
(2)使用String类构造函数创建
String str = new String("Hello");
或
char[] arr = {...};
String str = new String(arr);
两者比较:
两者方式可互换。这两种方式每次都会创建新的字符串对象,再将str引用这个对象,可能会浪费内存。
小结:以上(1)(2)两种方式都不能对字符串对象的内容进行修改,优先使用直接创建字符串的方式。
2.字符串连接
使用 “+” 运算符可实现连接多个字符串的功能。“+” 运算符可以连接多个String对象,并产生一个新的String对象。
字符串也可以同其它基本数据类型进行连接。如果将字符串同其它数据类型连接,会将其它数据类型的数据直接转换成字符串。这个过程受括号优先级的影响,例如:
int a = 1;
int b = 2;
System.out.println("我看书" + (a + b)+ "小时");
则会先计算a + b的结果返回一个int类型,然后在连接字符串的过程中,int转换为String类型。
在将基本类和字符串进行拼接的时,Java调用 String.valuof() 将基本数据类型转换为字符串,然后将拼接后的字符串生成一个新的String对象。
3.字符串获取
1. length()
获取字符串对象的长度
2. indexOf(String s)
返回字符串中 字符串 s 首次出现的下标
3. lastIndexOf(String str)
返回字符串str最后一次出现的下标。如果参数是""(任意没有空格),则返回结果和length()相同。
4.charAt(int index)
获取指定下标的字符
5.substring(int beginIdex)
对字符串进行截取,获取从 beginIndex开始以后的字符串
6.substring(int beginIndex, int endIndex)
获取从 beginIndex开始的到 endIndex结束的字符串
7.trim()
返回字符串的副本,忽略前导空格和尾部空格
4. 字符串判断
1. startsWith(String prefix_)
判断当前字符串对象的前缀是否为参数指定的字符串
2. endsWith(String suffix)
判断当前字符串是否以给定的字符串结束
5.字符串比较
1.equals()比较
比较两个字符串的内容和长度是否相同,区分大小写
2.equalsIgnoreCase()比较
比较两个字符串的内容和长度是否相同,不区分大小写
3."==" 比较
比较两个字符串的地址是否相同,跟内容无关。
4.compareTo(String otherstr)按字典顺序比较
和目标字符串的每个字符进行比较Unicode值,如果otherstr小,返回负整数;如果otherstr大,返回正整数;相等返回0.
6.字符串转换
1. replace(CharSequence target, CharSequence replacement)
将指定字符串替换成新的字符或字符串
返回一个新的字符串对象。如果要替换的字符或字符串不存在,则返回原来的字符串;如果要替换的字符或者字符串多次出现,则替换所有的。
2. toLowerCase()
将大写变小写
3. toUpperCase()
将小写变大写
7.字符串分割
split(String sign)和 split(String sign, int limit)
使 字符串 按照指定的 分割字符 或 字符串 进行分割,并将 分割后的结果 放在字符串数组中。
sign:为 分割字符串的分隔符,也可以使用正则表达式。
limit:限制分割的次数。
说明:
没有统一的 对字符进行分割的 符号,如果想 定义多个分割符,可以用 符号"|"。例如:
",|="表示分割符 分别为 ","和"="。