java学习笔记(4):字符串的处理(String类和StringBuffer类的比较)

文章目录

  • String类
    • 1.字符串String类的处理类
    • 2.字符串处理的方法
  • StringBuffer类
    • 1.缓冲字符串StringBuffer类的构造器
    • 2.缓冲字符串StringBuffer类的处理

String类

String类一旦产生一个字符串,其对象就不可变。String类的内容和长度是固定的。虽然通过各种系统方法可以对字符串施加操作,但这并不改变对象实例本身,而是生成了一个新的实例(创建一个新的字符串对象)。系统为String类对象分配内存,是按照对象所包含的实际字符数分配的。

StringBuffer类是一个具有缓冲功能的类,StringBuffer处理可变字符串。如果要修改一个StringBuffer类的字符串,不需要再创建新的字符串对象,而是直接操作原来的字符串。该类的字符串操作方法与String类的方法不同。系统为StringBuffer类对象分配内存时,除去当前字符所占的空间外,还提供另外16个字符大小的缓冲区

1.字符串String类的处理类

(1)字符串类的默认构造器
java学习笔记(4):字符串的处理(String类和StringBuffer类的比较)_第1张图片
运行结果:在这里插入图片描述

(2)字节参数的构造器( String(byte[ ] byte) )
java学习笔记(4):字符串的处理(String类和StringBuffer类的比较)_第2张图片
运行结果:在这里插入图片描述

输出结果不是97,98,99,而是他们对应的ASCII表。

(3)获取指定字节数的构造(String(byte[ ] bytes,int offset,int length))
java学习笔记(4):字符串的处理(String类和StringBuffer类的比较)_第3张图片
offset:是指字节数组的指定位置。
length:String实例的长度
输出结果:在这里插入图片描述
因为b对应的ASCII表为abcdef,offset=3,代表第四个位置。即从“d”开始(索引从0开始)

(4)字符数组的构造器(String(char[ ] value))
java学习笔记(4):字符串的处理(String类和StringBuffer类的比较)_第4张图片
输出结果:在这里插入图片描述

(5)截取部分字符串数组内容的构造器(String(char[ ] value,int offset,int count))
java学习笔记(4):字符串的处理(String类和StringBuffer类的比较)_第5张图片
输出结果:在这里插入图片描述
count类似于length

2.字符串处理的方法

(1)串连接(concat(String str))
两种串连接的方法:
第一种,“+”
第二种,使用方法函数,concat(String str)
java学习笔记(4):字符串的处理(String类和StringBuffer类的比较)_第6张图片
输出结果:在这里插入图片描述
注:这两种方法都是形成了新的字符串。

(2)提取子字符串(substring(int beginIndex,int endIndex)或者substring(int index))
substring(int index)是指从index指定的位置开始,一直到字符串的最后。
substring(int beginIndex,int endIndex)是指从开始索引到结束索引的字符串
java学习笔记(4):字符串的处理(String类和StringBuffer类的比较)_第7张图片
输出结果:
在这里插入图片描述
要注意的是,substring(int beginIndex,int endIndex)输出的子字符串不包括索引endIndex(含头不含尾)。

(3)从字符串中分解字符(charAt(int index))
该方法是从字符串中提取一个指定的字符。这个方法返回的是一个字符,而不是字符串。
java学习笔记(4):字符串的处理(String类和StringBuffer类的比较)_第8张图片
输出结果:在这里插入图片描述

(4)测试字符串是否相等(str1.equals(String str2))
equals(String str)方法区分大小写。
equalsIgnoreCase(String str)不区分大小写
java学习笔记(4):字符串的处理(String类和StringBuffer类的比较)_第9张图片
输出结果:在这里插入图片描述
(5)查找特定子串(indexOf、startsWith、endsWith)
indexOf(子串内容):查找子串,如果返回的是负数,就表示在当前的字符串中没找到所查找的子串。
startsWith(子串内容):测试当前字符串是否以一个子串开始。
endsWith(子串内容):测试当前字符串是否以子串内容为结尾。
java学习笔记(4):字符串的处理(String类和StringBuffer类的比较)_第10张图片
输出结果:java学习笔记(4):字符串的处理(String类和StringBuffer类的比较)_第11张图片

(6)toString()方法

StringBuffer类

1.缓冲字符串StringBuffer类的构造器

(1)默认构造器
缓冲字符串的容量:在刚刚创建对象时,系统分配的内存容量的大小。(默认为16)
缓冲字符串的长度:指实际缓冲字符串对象的内存空间中,字符串的长度。(默认为0)
java学习笔记(4):字符串的处理(String类和StringBuffer类的比较)_第12张图片
输出结果:java学习笔记(4):字符串的处理(String类和StringBuffer类的比较)_第13张图片

(2)设定容量大小的构造器
StringBuffer str = new StringBuffer(100);
设定缓冲字符串的容量大小为100。
ensureCapacity(x),扩容到x(但下图中不知为何扩容到58了)。
setLength(x),去实际字符串的前x长度。
java学习笔记(4):字符串的处理(String类和StringBuffer类的比较)_第14张图片
(3)字符串构造器
源代码为:
java学习笔记(4):字符串的处理(String类和StringBuffer类的比较)_第15张图片
java学习笔记(4):字符串的处理(String类和StringBuffer类的比较)_第16张图片
输出结果:在这里插入图片描述

2.缓冲字符串StringBuffer类的处理

(1)串连接(append())
java学习笔记(4):字符串的处理(String类和StringBuffer类的比较)_第17张图片
输出结果:在这里插入图片描述

(2)取字符串的单个字符(charAt(int index))

(3)单个字符串赋值(setCharAt(int index,char ‘字符’))

(4)指定位置插入字符串(insert(int index,String “字符串”))
java学习笔记(4):字符串的处理(String类和StringBuffer类的比较)_第18张图片
输出结果:在这里插入图片描述

(5)提取子字符串(substring(int beginIndex,int endIndex)或者substring(int index))
substring(int index)是指从index指定的位置开始,一直到字符串的最后。
substring(int beginIndex,int endIndex)是指从开始索引到结束索引的字符串
StringBuffer与String提取子字符串的方法相同。

(6)倒置字符串的内容(reverse())
java学习笔记(4):字符串的处理(String类和StringBuffer类的比较)_第19张图片
输出结果:在这里插入图片描述

你可能感兴趣的:(#,java基础)