一、API的使用步骤
- 打开帮助文档。
- 点击显示,找到索引,看到输入框。
- 你要找谁?在输入框里输入,然后回车。
- 看包。java.lang下的类不需要导包,其他需要。
- 看类的解释和说明。
- 学习构造方法。
- 使用成员方法。
二、String创建对象的区别
- 以“”方式给出的字符串,只要字符串相同,无论在程序代码中出现几次,在常量池中只有一个对象
- 通过 new 创建的字符串对象,每一次 new 都会申请一个内存空间,虽然内容相同,但是地址值不同
三、String类的构造方法
String类的构造方法
构造方法的作用:用于创建String字符串对象,有了对象,才能调用String类的成员方法
String() 创建一个空的字符串对象
String(String original) 通过参数传递的字符串常量,创建一个新的字符串对象
String(char[] value)通过参数传递的字符数组,创建一个新的字符串对象
String(byte[] bytes)通过参数传递的字节数组,查询编码表,创建一个新的字符串对象
四、判断功能的方法
使用 == 做比较
基本类型:比较的是数据值是否相同
引用类型:比较的是地址值是否相同
public boolean equals (Object anObject) :将此字符串与指定对象进行比较。
public boolean equalsIgnoreCase (String anotherString) :将此字符串与指定对象进行比较,忽略大小写。
判断功能的方法*******************
使用 == 做比较
基本类型:比较的是数据值是否相同
引用类型:比较的是地址值是否相同
- public boolean equals (String anObject) :比较两个字符串的内容是否相同,区分大小写(登录案例)
相同:返回true
不相同:返回false
- public boolean equalsIgnoreCase (String anotherString) :比较两个字符串的内容是否相同,忽略大小写。(验证码案例)
相同:返回true
不相同:返回false
五、String的遍历
可以使用遍历来访问字符串的每一个字符
字符串变量需要用到以下两个方法:public char charAt(int index):返回指定索引处的char值(字符串的索引也是从0开始的)
public int length() : 返回此字符串的长度
六、String的其他常用方法
-
String substring(int beginIndex)
-
从beginIndex开始截取字符串到字符串结尾,得到新的字符串并返回
String s = “abcHELLOabc”;
String s2 = s.substring(3);//“HELLOabc”
String substring(int beginIndex, int endIndex)
:从beginIndex索引位置开始截取,截取到endIndex索引位置,得到新字符串并返回(包含头,不包含尾)
String s = “abcHELLOabc”;
String s2 = s.substring(3,8);//“HELLO”
String substring(int beginIndex, int endIndex)
String replace(String target, String replacement) -
将当前字符串中的target (旧值 )内容,使用replacement (新值) 进行替换,返回新的字符串
String s = “abcHELLOabc”;
//需求:想把字符串中"HELLO",替换为"你好"
String s3 = s.replace(“HELLO”,“你好”);//“abc你好abc”
七、String类的扩展方法
boolean contains(String s) 判断字符串中是否包含指定的字符串;包含返回true,不包含返回false
“abcabc”>“abc” true “abcabc”>“aaa” false
int indexOf(String str) 从前往后在字符串中查找另外一个字符串,找到了返回字符串对应的索引,找不到返回-1
String[] split(String regex) 根据指定的字符串把字符串切割为多个字符串存储到一个字符串数组中
八、、StringBuilder类
1.StringBuilder的概述
查阅java.lang.StringBuilder的API,StringBuilder又称为可变字符序列,它是一个类似于 String 的字符串缓冲区,通过某些方法调用可以改变该序列的长度和内容。
它的内部拥有一个数组用来存放字符串内容,进行字符串拼接时,直接在数组中加入新内容。StringBuilder会自动维护数组的扩容。
作用:提高字符串的操作效率
2、构造方法
根据StringBuilder的API文档,常用构造方法有2个:
StringBuilder的构造方法:
public StringBuilder() 创建一个空白可变字符串对象,不含有任何内容
public StringBuilder(String str) 根据字符串的内容,来创建可变字符串对象
--------------------------
使用类中的构造方法创建对象的目的:通过对象名调用成员方法
面向对象:找对象,调用对象的方法,完成一些事情
3、StringBuilder常用方法
StringBuilder的常用方法:
public StringBuilder append (任意类型的数据) 往StringBuilder中添加数据,并返回对象本身
public StringBuilder reverse() 把StringBuilder中的数据进行反转 abc cba
public String toString() 把StringBuilder转换为String类型
public int length() 返回长度
append:添加
reverse:转换,反转
toString:转换为字符串
length:长度
`public class Demo02StringBuilder {
public static void main(String[] args) {
//使用空参数构造方法创建StringBuilder对象
StringBuilder sb = new StringBuilder();
//以后使用append方法添加数据,无需接收返回值
//sb.append("abc");
//sb.append(123);
//sb.append(true);
//sb.append('#');
//sb.append(5.5);
//System.out.println(sb);//abc123true#5.5
//链式编程:append方法返回的就是StringBuilder这个对象本身,所以可以继续调用方法
sb.append("abc").append(123).append(true).append('#').append(5.5);
System.out.println(sb);//abc123true#5.5
//public StringBuilder reverse() 把StringBuilder中的数据进行反转(数据位置反转)
sb.reverse();
System.out.println(sb);//5.5#eurt321cba
//public String toString() 把StringBuilder转换为String类型
String s = sb.toString();
System.out.println("s:"+s);//s:"5.5#eurt321cba"
System.out.println(sb.length());//14
}
//使用append往StringBuilder中添加数据
//StringBuilder bb = sb.append("abc");
//System.out.println(bb);//"abc"
//System.out.println(sb);//"abc"
/*
了解:源码==>java的一些源代码
append方法的源代码:
public StringBuilder append(String str) {
super.append(str);
return this;
}
this是谁?哪个对象调用的方法,方法中的this就是哪个对象
sb.append("abc");
sb这个对象调用的append方法,方法中this就是sb
StringBuilder bb = sb.append("abc")=this=sb;
*/
//System.out.println(sb==bb);//true 引用数据类型比较的是堆内存中的地址值
}`
4 、String和StringBuilder的区别
- String :内容是不可变的(浪费内存)
- StringBuilder:内容是可变的(节约内存)
5、String和StringBuilder相互转换
String和StringBuilder相互转换
String转换为StringBuilder==>使用StringBuilder的带参构造方法
public StringBuilder(String str) 根据字符串的内容,来创建可变字符串对象
StringBuilder转换为String==>使用toString方法
public String toString() 把StringBuilder转换为String类型
*/
public class Demo04StringToStringBuilder {
public static void main(String[] args) {
String s1 = "hello";
//String转换为StringBuilder
StringBuilder sb = new StringBuilder(s1);
sb.append("world");
//StringBuilder转换为String
String s2 = sb.toString();
System.out.println(s2);//helloworld
}
总结常用方法*************************
- String类:
构造方法:创建对象
String() 创建一个空的字符串对象
String(String original) 通过参数传递的字符串常量,创建一个新的字符串对象
String(char[] value)通过参数传递的字符数组,创建一个新的字符串对象
String(byte[] bytes)通过参数传递的字节数组,查询编码表,创建一个新的字符串对象
成员方法:使用对象名.方法名(参数)==>调用成员方法
1). public boolean equals(String anObject):比较两个字符串的内容是否相同。
String s1 = “abc”;
String s2 = “aaa”;
boolean b = s1.equals(s2);
boolean b = “abc”.equals(“aaa”);
2). public char charAt(int index):获取字符串指定索引位置上的字符。
String s1 = “abc”;
System.out.println(s1.charAt());//‘b’
3). public int length():获取字符串的长度。
String s1 = “abc”;
System.out.println(s1.length());//3
4). public String substring(int beginIndex):从beginIndex位置开始,截取到字符串的末尾
String s = “你好,我好,大家好,才是真的好”;
String s2 = s.substring(6);//大家好,才是真的好
5). public String substring(int beginIndex, int endIndex):从beginIndex开始,截取到endIndex – 1处。
String s = “你好,我好,大家好,才是真的好”;
String s3 = s.substring(6,9);//大家好 包含头不包含尾
6). public String replace(String old, String newStr):将当前字符串中的old字符串替换为newStr。
String s = “你好,我好,大家好,才是真的好”;
需求:把字符串s中大家好,替换为"Hello"
String s2 = s.replace(“大家好”,“Hello”);// “你好,我好,Hello,才是真的好” - StringBuilder类:
构造方法:
public StringBuilder() 创建一个空白可变字符串对象,不含有任何内容
public StringBuilder(String str) 根据字符串的内容,来创建可变字符串对象
成员方法:
1). public StringBuilder append (任意类型)添加数据,并返回对象本身
2). public StringBuilder reverse():反转数据,并返回对象本身
3). public int length():返回长度
4). public String toString():把StringBuilder转换为String类型