String字符串和StringBuilder类-Java

1. String类

字符串概述和特点

  • Java程序中的所有字符串字面值(如“abc”)都作为此类的实例实现,即程序当中所有的双引号字符串,都是String类的对象(包括没有使用new)
  • 字符串的内容用不可变,所以字符串可以共享使用
  • 字符串效果上相当于char[]字符数组,但是底层原理是byte[]字节数组

字符串的创建

  • **public String()**:创建一个空白字符串,内容为空
1
String str = new String();
  • **public String(char []array)**:根据字符数组的内容,创建对应的字符串
1
2
char[] charArray = {'q','z','y'};
String str = new String(charArray);
  • **public String(byte[]array)**:根据字节数组的内容,创建对应的字符串
1
2
3
byte[] byteArray = {97,98,99};
String str = new String(byteArray);
System.out.println(str);
  • 直接创建
1
String str = "hello";

字符串比较相关方法

  • public boolean equals(Object obj):参数可以是任何对象
  • public boolean equalsIgnoreCase(Object obj):不区分大小写

字符串获取

  • public String concat(String str):字符串连接
  • public char charAt(int index):获取指定索引位置
  • public int indexOf(String str);查找str在字符串中首次出现的位置,若没有返回-1

字符串截取

  • public String substring(int index):从index的位置到字符串末尾,返回字符串
  • public String substring(int begin,int end):[begin,end)的位置到字符串末尾,返回字符串

字符串转换

  • public char[] toCharArray();将字符串拆分成字符数组并返回
  • public byte[] getBytes();将字符串拆分成字节数组并返回
  • public String replace(CharSequence oldString,CharSequence newString);将所有出现的老字符串替换成新的字符串,返回替换之后的结果新字符串

字符串分割

  • public String[] split(String regex);按照参数的规则,将字符串划分;

    其参数是正则表达式,如果按照英文据点”.”分割,必须写“\\.”

2. StringBuilder类

原理

  • 使一个字符串缓冲区,可以提高字符串的操作效率。底层也是一个数组,但是没有被final修饰,可以改变长度,如果超出StringBuilder的容量弧自动扩容。

构造方法

  • public StringBuilder():构造一个空的StringBuilder容器
  • public StringBuilder(String str):构造一个StringBuilder容器,并将字符串添加进去

常用方法

  • public StringBuilder append(...) :添加任意数据类型的字符串形式,并返回档期啊对象自身
  • public String toString() 将当前StringBuilder转换成String对象

3. 基本类型和字符串类型之间转换

基本类型–>字符串

  • 基本类型的值 + “”
  • 包装类的静态方法toString(参数)
  • String类的静态方法valueOf(参数)

字符串–>基本类型

  • 使用包装类的静态方法parsexxx(String)方法
1
2
3
4
5
int i1 = 10;
String s1 = i1 + "";
String s2 = Integer.toString(100);
String s3 = String.valueOf(100);
int i = Integer.parseInt("10");