JavaAPI笔记(二)——String类、StringBulider类及StringBuffer类

一、String类

  1. 类描述
    在这里插入图片描述

  2. 在 Java 中字符串都属于String实例对象

  3. 创建与连接字符串
    (1) 创建字符串

    //第一种方式,直接定义
    String string  = "字符串";
    //第二种方式, 构造器定义
    String string = new String("字符串");
    

    (2) 字符串连接

    //第一种方式,使用+号
    String string  = "字符串1" + "字符串2";
    //第二种方式, 使用String对象方法string1.concat(string2);
    String string1 = "字符串";
    String string2 = "字符串2";
    String string = string1.concat(string2);
    

    tips: +号可以是字符串或者数字及其他基本类型数据,而concat只能接收字符串

  4. 常用方法表

序号方法声明功能说明
1String(char[] value)字符数组中的字符序列组合并转为String对象
2String(char[] value, int offset, int count)从下标为offset的元素开始组合count个字符数,并将所得序列转为String对象
3String(byte[] bytes,String charsetName) throws UnsupportedEncodingException用指定用指定的charset解码字节数组并转为String
4String(byte[] bytes,int offset,int length,String charsetName) throws UnsupportedEncodingExceptionbytes - 要解码的字节
offset-解码的第一个字节的索引
length - 要解码的字节数
charsetName - 支持的名称charset
5int length()返回此字符串的长度
6boolean isEmpty()如何字符串长度为0,则为true,否则为false
7char charAt(int index)返回char指定索引处的值
8void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)复制String对象索引srcBegin到srcEnd-1的字符到的字符数组dst且开始索引为dstBegin
9byte[] getBytes(String charsetName) throws UnsupportedEncodingException使用命名的字符集将此String编码为字节序列,将结果存储到新的字节数组中。
10boolean equals(Object anObject)将此字符串与指定对象进行比较
11boolean equalsIgnoreCase(String anotherString)如果两个字符串的长度相同,并且忽略大小写时两个字符串中的相应位置字符相等,则两个字符串相等
12int compareTo(String anotherString)按字典顺序比较两个字符串。
比较是基于字符串中每个字符的Unicode值
13int compareToIgnoreCase(String str)按字典顺序比较两个字符串,忽略大小写差异。
14boolean startsWith(String prefix)测试此字符串是否以指定的前缀开头
15boolean endsWith(String suffix)测试此字符串是否以指定的后缀结尾
16int hashCode()返回此字符串的哈希码。 String对象的哈希代码计算为
s[0]*31^(n-1) + s[1]*31^(n-2) + … + s[n-1]
使用int算术,其中s[i]是字符串的第i个字符, n是字符串的长度, ^表示取幂。 (空字符串的哈希值为零)
17int indexOf(int ch)返回指定字符第一次出现的字符串内的索引
18int indexOf(String str)返回指定子字符串第一次出现的字符串内的索引
19int lastIndexOf(int ch)返回指定字符的最后一次出现的字符串中的索引
20String substring(int beginIndex,int endIndex)返回一个字符串是此String对象的从beginIndex到endIndex形成的子字符串
21CharSequence subSequence(int beginIndex,int endIndex)同上,但返回的时字符序列
22String concat(String str)将指定的字符串连接到该字符串的末尾
23String replace(char oldChar, char newChar)替换字符串中出现的oldChar为newChar
24boolean matches(String regex)判断这个字符串是否符合给出的正则匹配规则
25String replaceFirst(String regex, String replacement)匹配并替换第一个符合正则规则的子字符串
26String replaceAll(String regex,String replacement)匹配并替换所有符合正则规则的子字符串
27String[] split(String regex)根据给出的正则匹配规则拆分字符串
28String toLowerCase()
String toUpperCase()
大小写转换
29String trim()返回一个字符串,其值为此字符串删除任何前导和尾随空格
30char[] toCharArray()将此字符串转换为新的字符数组
31static String valueOf(T c)T为boolean,char,int,long,float,double
32String intern()当调用intern方法时,如果池已经包含与equals(Object)方法确定的相当于此String对象的字符串,则返回来自池的字符串。
否则,此String对象将添加到池中,并返回对此String对象的引用。

二、StringBulider类

  1. 类描述
    在这里插入图片描述
    StringBuilder类非线程安全,不可被继承,此类设计用作简易替换为StringBuffer使用的是单个线程字符串缓冲区的情况(通常是这种)。在可能的情况下,StringBulider类优先于StringBuffer,因为它在大多实现中将更快。

  2. 主要方法列表

序号方法声明功能描述
1StringBuilder()
StringBuilder(String str)
StringBuilder(int capacity)
构造方法
StringBuilder() 构造的字符串构造器初始容量为16个字符
2StringBuilder append(XXX s)在末尾添加字符或字符串,XXX为类型,常见的有String,char[],StringBulider等
3.StringBuilder insert(int offset,String str)在指定下标处插入字符数据, XXX为类型,常见的有char[],String等
4StringBuilder delete(int start, int end)删除此字符串序列中的指定的位置字符串
5StringBuilder deleteCharAt(int index)删除指定的位置字符串
6replace(int start, int end, String str)用指定的String中的字符替换此序列的子字符串中的String
7StringBuilder reverse()字符串倒置
8int length()返回字符串长度
9==int capacity()==返回构造器容量
10void trimToSize()尝试减少用于字符序列的存储。 如果缓冲区大于保持其当前字符序列所需的缓冲区,则可以将其调整大小以变得更加空间有效
11String substring(int start, int end)返回一个新的String ,其中包含此序列中从下标start延伸到下标end-1之间形成的子序列。

三、StringBuffer类

  1. 类描述
    在这里插入图片描述

  2. 主要方法列表
    同StringBulider,请向上翻阅

四、String,StringBuilder,StringBuffer区别

  1. 执行速度。快慢为:StringBuilder > StringBuffer > Strin
  2. 线程安全。StringBuilder是线程不安全的,而StringBuffer是线程安全的。
  3. 不作修改的少量数据用 String
    单线程操作字符串缓冲区下操作大量数据 StringBuilder
    多线程操作字符串缓冲区下操作大量数据 StringBuffer
  4. 接口继承图(图片引自他处)
    图片引自他处
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值