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. 遍历字符串

根据索引获取字符串的指定字符

  1. public char charAt(int index);

返回指定索引出的char值,字符串的索引也从0开始

获取字符串的长度

  1. public int lengh(); //返回此字符串的长度

数组的长度:数组名.length

字符串的长度:字符串对象.length

8. 统计字符次数

  1. 假如ch是一个字符,我要判断它属于大写字母,小写字母,还是数字,直接判断该字符是否在对应的范围即可
  2. 大写字母:ch>='A' && ch<='Z'
  3. 小写字母: ch>='a' && ch<='z'
  4. 数字: 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