字符串(2)
一、字符串替换
- public String replace(CharSequence oldStr,CharSequence newStr)
*参数 oldStr代表需要被替换的老字符串部分;
*参数newStr代表需要替换成为的新字符串部分
*参数类型CharSequence可简单认为就是字符串String(其实不是)
*注意事项:
*由于字符串的内容不可改变,所以replace方法的返回值结果就是一个全新的字符串(见以下代码)
String str1 = "how do you do";
String str2 = str1.replace("o", "+");
System.out.println(str2);//h+w d+ y+u d+
System.out.println(str1);//how do you do
//字符串替换的一个用处———敏感词过滤
String str3 = "会不会玩呀!你大爷,真是服了";
String str4 = str3.replace("你大爷", "***");
System.out.println(str4);//会不会玩呀!***,真是服了
二、字符串的相关问题
- 1.所有的类都需要导包才能使用。除了以下两种情况:
- A.要使用的目标类和当前类位于同一包下;
- B.要使用的目标类,位于java.lang包下,但不包含其子包。
- 2.既然字符串是对象,为什么直接打印出来就是内容?
- 打印println的方法逻辑
- A.如果是字符串类型,直接显示内容
- B.如果不是字符串类型,那么就先转换成字符串再显示。
- 一般的对象都是使用“类型信息+@+地址值”作为字符串内容。
int[] array = {1,2,3,4};
System.out.println(array);//[I@6d06d69c
//所以要遍历数组不可直接打印,要使用for循环遍历输出
for(int i = 0;i<array.length;i++) {
System.out.println(array[i]);
}
1
2
3
4
三、字符串切割
- 目的:将字符串按所指定的标识切分成为若干段
- public String[] split(String regex)将regex作为标识进行切分,返回切分之后的若干段字符串(字符串数组)
- 注意事项:
- 不推荐使用英文句点作为标识,因为其在正则表达式中有特殊含义,而参数regex就是一个正则表达式。如果一定要使用英文句点的话,切割的标识应使用”\."
String str1 = "AAA,BBB,CCC";
String[] array1 = str1.split(",");
System.out.println(array1);
System.out.println("数组的长度"+array1.length);
for(int i = 0;i<array1.length;i++) {
System.out.println(array1[i]);
}
[Ljava.lang.String;@2a139a55//此处见第二小节有介绍
数组的长度3
AAA
BBB
CCC
String str2 = "AAA.BBB.CCC";
String[] array2 = str2.split("\\.");
System.out.println(array2);
System.out.println("数组的长度"+array2.length);
for(int i = 0;i<array2.length;i++) {
System.out.println(array2[i]);
}
[Ljava.lang.String;@15db9742
数组的长度3
AAA
BBB
CCC
如果使用英文句点则会
String str2 = "AAA.BBB.CCC";
String[] array2 = str2.split(".");
System.out.println(array2);
System.out.println("数组的长度"+array2.length);
for(int i = 0;i<array2.length;i++) {
System.out.println(array2[i]);
}
[Ljava.lang.String;@2a139a55
数组的长度0