目录
一、认识String类
什么是String类
String类的作用:
二、String对象的比较
1.是否用的是同一个对象
2.用它的字符大小比较
(考虑大小写的情况下)
(不考虑大小写的情况下)
三、 字符串查找
1 char charAt(int index)
2 int indexOf(int ch)
3 int indexOf(int ch, int fromIndex)
4 int indexOf(String str)
5 int indexOf(String str, int fromIndex)
6 int lastIndexOf(int ch)
7 int lastIndexOf(int ch, int fromIndex)
8 int lastIndexOf(String str)
9 int lastIndexOf(String str, int fromIndex)
四、转换
1. 数值和字符串转化
2. 小写转大写(toUpperCase())
3.大写转小写(toLowerCase())
五、替换
1. replace(char)
2.replace(string)
3.replaceFirst
4.replaceAll
六、字符串拆分
1.部分拆分
2.多次拆分
七、字符串的截取
1. 从指定索引截取到结尾
2.截取部分内容
其他类(trim):
八、字符串的不可变性
1.原因:
2.不可变性的缺点:
3.String和StringBuilder比较:
一、认识String类
什么是String类
Java中的String类是一个内置的类,用于表示字符串,即一串字符序列。它是Java中最基本的数据类型之一,也是最常用的类之一。字符串可以包含任何字符,包括数字、字母、符号和空格等。
String类的作用:
String类可以用于存储文本、格式化字符串、比较字符串、拼接字符串等。
public class Test {
public static void main(String[] args) {
String a="中国";
String b=new String("最美");
char[] value={'a','b','c'};
String c =new String(value);
System.out.println(a);
System.out.println(b);
System.out.println(c);
}
}
二、String对象的比较
1.是否用的是同一个对象
public class Test {
public static void main(String[] args) {
String a = new String("中国最美");
String b = new String("中国最美");
String c =a;
System.out.println(a==b);
System.out.println(a==c);
System.out.println(b==c);
}
运行结果:
2.用它的字符大小比较
(考虑大小写的情况下)
public class Test {
public static void main(String[] args) {
String a =new String("PIG");
String b =new String("pig");
System.out.println(a.compareTo(b));
}
}
运行结果:
(不考虑大小写的情况下)
public class Test {
public static void main(String[] args) {
String a =new String("PIG");
String b =new String("pig");
System.out.println(a.compareToIgnoreCase(b));
}
}
运行结果:
三、 字符串查找
方法 | 功能 |
---|---|
char charAt(int index) | 返回index位置上字符,如果index为负数或者越界,抛出 IndexOutOfBoundsException异常 |
int indexOf(int ch) | 返回ch第一次出现的位置,没有返回-1 |
int indexOf(int ch, int fromIndex) | 从fromIndex位置开始找ch第一次出现的位置,没有返回-1 |
int indexOf(String str) | 返回str第一次出现的位置,没有返回-1 |
int indexOf(String str, int fromIndex) | 从fromIndex位置开始找str第一次出现的位置,没有返回-1 |
int lastIndexOf(int ch) | 从后往前找,返回ch第一次出现的位置,没有返回-1 |
int lastIndexOf(int ch, int fromIndex) | 从fromIndex位置开始找,从后往前找ch第一次出现的位置,没有返 回-1 |
int lastIndexOf(String str) | 从后往前找,返回str第一次出现的位置,没有返回-1 |
int lastIndexOf(String str, int fromIndex) | 从fromIndex位置开始找,从后往前找str第一次出现的位置,没有返 回-1 |
1 char charAt(int index)
功能:返回index位置上字符,如果index为负数或者越界,抛出 IndexOutOfBoundsException异常
public class Test {
public static void main(String[] args) {
String s = "good";
char a=s.charAt(3);
System.out.println(a);
}
}
运行结果:
2 int indexOf(int ch)
功能:返回ch第一次出现的位置,没有返回-1
默认是从“0” 开始的地方查找
public class Test {
public static void main(String[] args) {
String s = "good";
int index = s.indexOf('g');
System.out.println(index);
}
}
运行结果:
3 int indexOf(int ch, int fromIndex)
功能:从fromIndex位置开始找ch第一次出现的位置,没有返回-1
public class Test {
public static void main(String[] args) {
String s = "good";
int index = s.indexOf('g',2);
System.out.println(index);
}
}
运行结果:
4 int indexOf(String str)
功能:返回str第一次出现的位置,没有返回-1
public class Test {
public static void main(String[] args) {
String s = "good";
int index = s.indexOf("oo");
System.out.println(index);
}
}
运行结果:
5 int indexOf(String str, int fromIndex)
功能:从fromIndex位置开始找str第一次出现的位置,没有返回-1
public class Test {
public static void main(String[] args) {
String s = "good";
int index = s.indexOf("oo",2);
System.out.println(index);
}
}
运行结果:
6 int lastIndexOf(int ch)
功能:从后往前找,返回ch第一次出现的位置,没有返回-1
public class Test {
public static void main(String[] args) {
String s = "ababcabcd";
int index = s.lastIndexOf('a');
System.out.println(index);
}
}
运行结果:
7 int lastIndexOf(int ch, int fromIndex)
功能:从fromIndex位置开始找,从后往前找ch第一次出现的位置,没有返 回-1
public class Test {
public static void main(String[] args) {
String s = "ababcabcd";
int index = s.lastIndexOf('a',3);
System.out.println(index);
}
}
运行结果:
8 int lastIndexOf(String str)
功能:从后往前找,返回str第一次出现的位置,没有返回-1
public class Test {
public static void main(String[] args) {
String s = "ababcabcd";
int index = s.lastIndexOf("ba");
System.out.println(index);
}
}
运行结果:
9 int lastIndexOf(String str, int fromIndex)
功能:从fromIndex位置开始找,从后往前找str第一次出现的位置,没有返 回-1
public class Test {
public static void main(String[] args) {
String s = "ababcabcd";
int index = s.lastIndexOf("abc",4);
System.out.println(index);
}
}
运行结果:
四、转换
1. 数值和字符串转化
public class Test {
public static void main(String[] args) {
String a = String.valueOf(4567);
String b = String.valueOf(45.67);
String c = String.valueOf(true);
System.out.println(a);
System.out.println(b);
System.out.println(c);
int data1 = Integer.parseInt("4567");
double data2 = Double.parseDouble("45.67");
System.out.println(data1+1);
System.out.println(data2);
}
}
2. 小写转大写(toUpperCase())
public class Test {
public static void main(String[] args) {
String a ="good";
String b =a.toUpperCase();
System.out.println(b);
}
}
运行结果:
3.大写转小写(toLowerCase())
public class Test {
public static void main(String[] args) {
String a ="GOOD";
String b =a.toLowerCase();
System.out.println(b);
}
}
运行结果:
五、替换
替换的几种类型
1. replace(char)
public class Test {
public static void main(String[] args) {
String a ="dasdad";
String b =a.replace('a','m');
System.out.println(b);
}
}
运行结果:
2.replace(string)
public class Test {
public static void main(String[] args) {
String a ="dasdad";
String b =a.replace("da","mm");
System.out.println(b);
}
}
运行结果:
3.replaceFirst
public class Test {
public static void main(String[] args) {
String a ="dasdad";
String b =a.replaceFirst("da","mmn");
System.out.println(b);
}
}
运行结果:
4.replaceAll
public class Test {
public static void main(String[] args) {
String a ="dasdad";
String b =a.replaceAll("da","mmn");
System.out.println(b);
}
}
运行结果:
六、字符串拆分
1.部分拆分
public class Test {
public static void main(String[] args) {
String a ="fjds=saddas";
String[] strings = a.split("=");
for (int i = 0; i < strings.length ; i++) {
System.out.println(strings[i]);
}
}
}
运行结果:
2.多次拆分
public class Test {
public static void main(String[] args) {
String a ="fjds=sadd&as";
String[] strings = a.split("=");
for (int i = 0; i < strings.length ; i++) {
String[] aa=strings[i].split("&");
for (int j = 0; j <aa.length ; j++) {
System.out.println(aa[j]="");
}
System.out.println();
}
}
}
七、字符串的截取
1. 从指定索引截取到结尾
public class Test {
public static void main(String[] args) {
String a ="djsfks";
String b =a.substring(2);
System.out.println(b);
}
}
运行结果:
2.截取部分内容
public class Test {
public static void main(String[] args) {
String a ="djsfks";
String b =a.substring(2,4);
System.out.println(b);
}
}
运行结果:
其他类(trim):
功能:去掉字符串中的左右空格,保留中间空格
public class Test {
public static void main(String[] args) {
String a =" jsa dsjk jdsk ";
System.out.println(a);
String b =a.trim();
System.out.println(b);
}
}
运行结果:
八、字符串的不可变性
1.原因:
2.不可变性的缺点:
丧失了部分灵活性。我们平时使用的大部分都是可变对象,比如内容变化时,只需要利用setValue()更新一下就可以了,不需要重新创建一个对象,但是String很难做到这一点。当然,我们完全可以使用StringBuilder来弥补这个缺点。
3.String和StringBuilder比较:
String和StringBuilder最大的区别在于String的内容无法修改,而StringBuilder的内容可 以修改。频繁修改字符串的情况考虑使用StringBuilder。
希望对大家关于String的学习有所帮助
谢谢观看!!!