本帖最后由 小石姐姐 于 2017-12-11 17:03 编辑
* Scanner类
* `String nextLine()`: 获取键盘录入的字符串
* String类
* 构造方法
* `String String()`
* `String String(char[] value)`
* `String String(String origin)`
* 看API文档
* 成员方法
* 判断功能
* `boolean equals(Object obj)`: 比较字符串的内容是否相同
* `boolean equalsIgnoreCase(String str)`: 比较字符串的内容是否相同, 不区分大小写
* `boolean startsWith(String str)`: 是否以指定的字符串开头
* `boolean endsWith(String str)`: 是否以指定的字符串结尾
* 获取功能
* `int length()`: 获取字符串的长度
* `char charAt(int index)`: 获取指定索引处的字符
* `int indexOf(String str)`: 获取str在字符串对象中第一次出现的索引, 没有则返回-1
* `String substring(int start)`: 从start开始截取字符串, 到末尾
* `String substring(int start, int end)`: 从start开始截取字符串, 到end结束, 不包括end
* 转换功能
* `char[] toCharArray()`: 将字符串转换为字符数 * `String toLowerCase()`: 将字符串转换为小写字符串
* `String toUpperCase()`: 将字符串转换为大写字符串
* 其他功能
* `String trim()`: 去除字符串两端的半角空格, 中间的去不掉
* `String[] split(String str)`: 以指定字符串作为分隔符, 将字符串分割为多个部分, 保存在字符串数组中. 最终数组中不会包含作为分隔符的字符串
* String类的`==`和`equals()`的区别
* `==`的作用
* 对于基本数据类型: 比较基本数据类型的值
* 对于引用数据类型: 比较引用数据类型的地址值
* `equals()`: 比较字符串的内容是否相同, 而不是比较地址值
* 字符串的内存注意事项
* 创建一个String对象的2种方式:
* 构造方法: `String String()`
* 使用字符串常量: `"hello"`
* 对象创建在哪
* 构造方法是在堆内存中创建一个对象, 然后该对象保存的是字符串在常量池中的地址值
* `String s = new String("Hello");`
* 首先创建了常量池中的`"Hello"`对
* 然后创建了堆内存中的new String对象
* new String对象保存常量池中字符串的地址
* 变量s保存堆内存中new String的地址
* 字符串常量是在方法区的常量池中创建的对象, 有一个地址值. 该字符串不可变, 创建一次可以重复使用
* `String s = "hello";`
* 首先创建了常量池中的`"hello"`对象
* 然后将常量池中对象的地址值赋值给变量s
* StringBuilder
* 作用: 高效的拼接字符串
* 构造方法:
* `StringBuilder StringBuilder()`
* `StringBuilder StringBuilder(String str)`
* 成员方法:
* `StringBuilder reverse()`: 反转字符串
* `StringBuilder append(任意类型)`: 追加字符串
* `String toString()`: 将StringBuilder对象转换为String
|
|