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