目录
一.了解字符串的构造方式
第一种
String str1 = "abc";
这种方法在创建字符串abc时,首先JVM会去缓冲池里寻找有没有“abc”这个字符串,如果有,就直接将缓冲池存放“abc”这块空间的地址直接赋给str1.如果没有,就会在缓冲池先开辟一个空间存放“123”,然后再将缓冲池存放“123”这块空间的地址直接赋给str1.
第二种
String str2 = new String("abc");
这种方法在创建字符串abc时,JVM也会去缓冲池里寻找有没有“abc”这个字符串,如果有,就会在堆区重新开辟一个空间,用来存放缓冲池中存放“abc”这块空间的地址。然后再让str2指向这个堆区开辟的空间的地址。
如果没有,它会先在缓冲池中开辟一个空间用来存放“abc”,然后再在堆区开辟一个空间,用来存放常量池中存放“abc”这块空间的地址。
总而言之,两种创建字符串的方式区别在于虽然内容相同,但是字符串的存放机制不同。
二.字符串的基本操作
1.字符串的比较
- 1.==只比较内容,===不仅判断内容是否相等,还要判断存放的方式是否相等
String str1 = "abc";
String str2 = new String("abc");
str1==str2//true
str1===str2//false
- 2.equals(),返回值为布尔值
字符串.equals(字符串2); //需要判断字母大小写来进行比较
字符串.equalsIgnoreCase(字符串2); //忽略字母大小写来进行比较
2.字符串的拼接
- 最常用的使用"+"运算符拼接字符串
- 使用 StringBuilder类,下面会单独提到
3.获取字符串的长度
- 字符串.length()
4.字符串的转换
- 字符数组与字符串的相互转换
字符数组转换为字符串
char []helloArray= {'h','e','l','l','o'}; //声明一个字符数组
String helloString=new String(helloArray);
字符串转换为字符数组
String helloString ="hello"; //声明一个字符串变量并赋值
char []helloArray=helloString.toCharArray();
- int与String相互转换
int 转string
(1) num+“”;
int num=123;
String str=num+"";
(2) String.valueOf(num)
int num=123;
String str=String.valueOf(num);
(3)Integer.toString(num)
int num=123;
String str=Integer.toString(num);
string转int
(1) Integer.parseInt(str);
String str="123";
int num=Integer.parseInt(str);
(2) Integer.valueOf(str).intValue();
String str="123";
int num=Integer.valueOf(str).intValue();
5.字符串的查找,截取和替换
1.查找
- int indexOf(char ch):搜索字符ch出现的第一个索引号,如果没有,返回-1;
- int indexOf(char ch,int index):从index位置开始搜索出现ch的第一个索引号;没有返回-1
- int indexOf(String str):搜索字符串str出现的第一个索引号
String str="abcd";
System.out.println(str.indexOf('c')); //输出字符'c'的索引号
System.out.println(str.indexOf('c',1)); //输出索引号为1的字符是否是字符'c'
System.out.println(str.indexOf("bc")); //输出字符串bc出现的索引
//答案为
2
-1
1
2.截取
- String substring(int index):提取从位置索引开始的字符串部分;
- String substring(int beginnum,int endnum):提取beginnum到endnum-1为止的字符串部分。
String str="abcd";
str.substring(2); //截取开始位置为3的字符串
str.substring(1, 3); //截取开始索引为1,结束索引为3但不包含3的字符串
3.替换
字符串.replace(char oldchar,char newchar)
String s1="abcd";
char oldchar='a'; //被替换字符
char newchar='A'; //替换字符
String s2=s1.replace(oldchar, newchar);
System.out.println(s2);
//s2结果为Abcd
6.StringBuilder
1.什么是StringBuilder
2.StringBuilder的构造方法
3.StringBuilder的添加与反转
4.StringBuilder与String的转化
总结:java关于字符串的方法有很多,上面只提到常用的方法。