1. 字符串
2. API
概述API(Application Progarmming Interface):应用程序编程接口
sc.nextLine()返回是一个字符串类型的值
3. String
String 类在java.lang包下,使用的时候不需要导包
String类代表字符串,java中所有的字符串文字都被为此类的实例,java中所有双引号字符串的偶数String类的对象
字符串不可变,它们的值在创建后不能被更改
虽然String的值是不可变,但它们可以被共享
字符串效果上相当于字符串数据(char[]),但是底层原理是字节数据(byte[])
JDK8以前是字符数据,JDK9及以后是字节数组
4. String 构造方法
pubilic String() 创建一个空白字符串对象,不含有任何内容
pubilc String(char[] chs) 根据字符数组的内容,来创建字符串对象
pubilc String(byte[] bys) 根据字节数组的内容,来创建字符串对象
String s =“abc” 直接以赋值方式创建字符串对象
5. String 对象的特点
通过new创建的字符串对象,每次new都会申请一个内存空间,虽然内存相同但内容地址不相同
以“”赋值方式创建的字符串对象,只有字符序列相同,jvm都只会建立一个String对象,并在字符串池中维护
6. 字符串的比较
使用==作比较
基本类型:比较的是数据值是否相同
引用类型:比较的是地址值是否相同
字符串是对象,它比较内容是否相同,是通过一个方法来实现的,这个方法叫:equals()
- public boolean equals(Object anObject):将此字符串与指定对象进行比较
7. 遍历字符串
根据索引获取字符串的指定字符
public char charAt(int index);
返回指定索引出的char值,字符串的索引也从0开始
获取字符串的长度
public int lengh(); //返回此字符串的长度
数组的长度:数组名.length
字符串的长度:字符串对象.length
8. 统计字符次数
假如ch是一个字符,我要判断它属于大写字母,小写字母,还是数字,直接判断该字符是否在对应的范围即可
大写字母:ch>='A' && ch<='Z'
小写字母: ch>='a' && ch<='z'
数字: ch>='0' && ch<='9'
9. StringBuilder
如果对字符串进行拼接操作,因为字符串是不可变类型,每次拼接都会构建一个新的string对象,我们可以使用StringBuilder类来解决浪费内存空间问题
StringBuilder是一个可变的字符串类
9.1. 构造方法
pubilc StringBuilder() 创建一个空白的可变字符串对象,没有任何内容
pubilc StringBuilder(String str) 根据字符串的内容,来创建可变字符串对象
9.2. 添加和反转方法
public StringBuilder append(任意类型);添加数据,并返回对象本身
public StringBuilder reverse(); 返回相反的字符序列
9.3. 链式编程
如果一个对象被调用后返回对象自己本身,那么可以根据返回的对象继续调用方法
如str.append().append().append().append();
因为str是 StringBuilder对象,而 StringBuilder对象的append方法是添加数据后并返回对象本身,所以可以写为链式编程
10. String与Stringbuilder相互转换
public String toString() 通过tostring() 可以把stringbuilder 转换为string
pubilc stringbuilder(string s) 通过构造方法可以实现把string转换为stringbuilder