String常见的API

String 类

在 java.lang 包下的一个类、所以该类不需要导入,可以直接使用
String 类 用来表示 字符串 类型
字符串类型是由 多个字符组成一个特殊的数组
Java中的字符串类型 对应的值 是不可变的
字符串的字面量表示 使用 双引号

声明并创建一个字符串对象

// 创建一个 长度为 0, 内容空 空字符串 的 字符串对象 
String s = new String(); 


// 创建一个长度为 0, 内容为 空 字符串的 字符串对象 
String s = "" ; 


// 创建一个 内容为 hello 的字符串对象 
String s = new String("hello") ;

String s = "hello" ;


// 用一个 char 数组 构建一个字符串对象 
char[] x = {'中', '国', '人'} ;

String s = new String(x) ;  


// 用一个 byte 数组 构建一个字符串对象 

byte[] x = {65, 66, 67} ;

String s = new String(x) ;  // ABC

字符串 常量池(串池)

当使用 字面量(用双引号引起来的内容) 来构建 字符串的时候, 会从串池中获取对象,所以 只要内容相同,那么地址一定相同

new 构建的字符串

使用 new 关键字,代表创建对象,创建好的对象会被存储在堆空间中

// 该语句创建了2个对象   
String s = new String("hello"); 
// 该语句创建了1个对象   
String s1 = new String("hello") ;

第一个对象是 从 常量池 中构建的 hello , 第二个对象是从堆空间中创建的 new String(“hello”)

字符串是不可变的

String 默认存储数据使用 byte[] , 但是 JDK7 以及之前的版本采用的是 char[]
JDK8 优化了String数据的存储方式
由于 byte[] value 使用 final 修饰,代表地址不可更改

String类中的静态方法

  • valueOf(x) : 可以将任意类型数据转成字符串, 如果值为 null(空), 那么会返回一个长度为4 且内容为 null 的字符串

  • format(template, args…) : 格式化字符串,按照指定的格式,显示字符串的内容

String 常见的成员方法

isEmpty() : 判断字符串是否长度为 0

isBlank() : JDK11 判断字符串是否为空(包含空白字符)

charAt(index) : 获取指定索引位置的字符

codePointAt(index) : 取指定索引位置的字符码

getBytes(charset) : 将字符串按指定编码转为流

equals(obj) / equalsIgnoreCase(str) : 判断两个字符串内容是否相同

compareTo(str) : 判断字符串的大小 >0前者大于后者 =0两个字符串相等 <0后者大于前者

startsWith(str) / endsWith(str) : 判断字符串是否以 … 开头/结尾

contains(str) : 是否包含某个指定的子串

indexOf(str) / lastIndexof(str) : 搜索 str 在字符串中的索引位置 >=0代表自定字符串的索引位置 -1没有找到满足条件的字符串

concat(str) : 连接字符串 ,相当于 +

substring(offset , endIndex) : 从字符串指定位置截取字符串,截取到指定位置 不包含endIndex 对应的字符
截取长度 = endIndex - offset endIndex 超出了字符串的最大长度 则抛出异常
endIndex <0 , 则抛出异常 endIndex 不传,则代表截取到尾部

replace(oldstr , newstr) / replaceAll(regex, newstr) : 替换全部满足条件字符串

replaceFirst(regex, newstr) : 替换第一个匹配的字符串

matches(regex) : 是否匹配某个正则

split(regex , max=0) : 拆分字符串, max允许拆分的最大次数,如果不设置,或者设置为 <=0. 代表 全部拆分

toLowerCase() / toUpperCase() : 字符串 转为 小写/大写,(大小写只对字母生效)

trim() : 移除字符串两侧的空白字符(空格、tab键、换行符) 无法删除掉Unicode空白字符, 但用Character.isWhitespace©方法可以判断出来
strip() : 可以去掉 Unicode空白字符

repeat(n) : 重复 N次

toCharArray() : 转为字符数组

template : 字符串模板, 可以支持的占位符有

%d :  代表一个整数 
%s :  代表一个字符串 
%f :  代表一个小数 
%.nf :  n是一个数字,例如 %.2f 代表 小数点后保留2位数字

%x :  代表在控制台输出的时候,会自动转成 16进制 

%o :  代表在控制台输出的时候,会自动转成 8进制 

%b :  代表在控制台输出的时候,会自动转成 boolean

%% :   代表在控制台输出的时候, 会输出一个 % 

  • join(sep, str…) : 将多个字符串,按照 sep指定分隔符,进行拼接,形成一个新的字符串
  • String.copyValueOf(char[]) : 将 char 数组转成字符串
  • String.copyValueOf(char[], offset, len) : 将 char数组中指定范围内的元素转成字符串

char[] 和 String 相互转换

char[] —> String :

  1. new String(char[])
  2. String.copyValueOf(char[])

String —> char[]

  1. toCharArray(); 将字符串转成 char数组

byte[] 和 String 相互转换

byte[] ----> String

  1. new String(byte[])

String ----> byte[]

  1. getBytes()

StringBuilder

可变的字符串

StringBuilder 常见的构造方法

StringBuilder() : 无参构造,创建一个长度为 0 内容为 空字符串的对象

StringBuilder(String str) : 将一个字符串快速转换成 StringBuilder对象

StringBuilder 常见的成员方法

append(x) : 进行字符串拼接、将 x 拼接到字符串的尾部

delete(start ,end) : 删除指定区间内的字符串

deleteCharAt(int index) : 删除指定位置的字符

replace(int start, int end, String str): 将指定区间的内容,替换成指定的内容

insert(int offset, String str) : 将指定的str字符串插入到 offset对应的位置上

indexOf / lastIndexOf : 用来获取指定的子串 在字符串中出现的索引位置,如果找不到,返回 -1

reverse() : 反转字符串

toString() : 将 StringBuilder 对象转成 String

length() : 获取字符串的长度

compareTo(str) : 比较两个字符串的大小

StringBuffer

可变的字符串, 用法和 StringBuilder 完全相同

StringBuilder VS StringBuffer

StringBuilder 是线程不安全的,在高并发环境下会出现问题,性能高
StringBuffer 是线程安全的,主要应用于多线程环境下,性能较低

StringJoiner

用来拼接字符串的

常见的构造方法

StringJoiner(String delimiter) : 构建一个StringJoiner对象,并指定分隔符

StringJoiner(String delimiter, String prefix, String suffix) : 构建一个StringJoiner对象,并指定分隔符 前缀和后缀

常见的方法

  • add(x) : 将要进行拼接的元素添加到 Joiner对象中

  • merge(StringJoiner joiner) : 将两个 Joiner对象进行合并

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java String 类型 API 测试代码 1.Stringchar[]之间的转换 toCharArray(); 2.String和byte[]之间的转换 getBytes() Arrays工具类 : Arrays.toString(names) StringString replace(char oldChar, char newChar) String replace(CharSequence target, CharSequence replacement) String[] split(String regex) boolean contains(CharSequence s):当且仅当此字符串包含指定的 char 值序列时,返回 true int indexOf(String str):返回指定子字符串在此字符串中第一次出现处的索引 int indexOf(String str, int fromIndex):返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始 int lastIndexOf(String str):返回指定子字符串在此字符串中最右边出现处的索引 int lastIndexOf(String str, int fromIndex):返回指定子字符串在此字符串中最后一次出现处的索引,从指定的索引开始反向搜索 boolean endsWith(String suffix):测试此字符串是否以指定的后缀结束 boolean startsWith(String prefix):测试此字符串是否以指定的前缀开始 boolean startsWith(String prefix, int toffset):测试此字符串从指定索引开始的子字符串是否以指定前缀开始 int length():返回字符串的长度: return value.length char charAt(int index): 返回某索引处的字符return value[index] boolean isEmpty():判断是否是空字符串:return value.length == 0 String toLowerCase():使用默认语言环境,将 String 中的所有字符转换为小写 String toUpperCase():使用默认语言环境,将 String 中的所有字符转换为大写 String trim():返回字符串的副本,忽略前导空白和尾部空白 boolean equals(Object obj):比较字符串的内容是否相同 boolean equalsIgnoreCase(String anotherString):与equals方法类似,忽略大小写 String concat(String str):将指定字符串连接到此字符串的结尾。 等价于用“+” String substring(int beginIndex):返回一个新的字符串,它是此字符串的从beginIndex开始截取到最后的一个子字符串。 String substring(int beginIndex, int endIndex) :返回一个新字符串,它是此字符串从beginIndex开始截取到endIndex(不包含)的一个子字符串。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值