Java常用类库之String类

一、字符串

  1. 创建字符串可以直接使用字符串常量,也可以使用关键字new和构造方法来创建String对象。
  2. String 类是不可改变的,所以你一旦创建了 String 对象,那它的值就无法改变了。
    如果需要对字符串做很多修改,那么应该选择使用 StringBuffer & StringBuilder 类。
  3. String类表示字符串类型,属于引用数据类型,不属于基本数据类型。
  4. String类是final类,不可以被继承。

二、连接字符串

  1. 使用concat()方法
  2. 使用‘+’操作符

三、格式化字符串

输出格式化字符串可以使用 printf() 和 format() 方法。
String 类使用静态方法 format() 返回一个String 对象而不是 PrintStream 对象。
以下是格式说明符:

说明符输出
%a浮点数的十六进制输出
%b非空为true,为空flase
%cUnicode字符
%d十进制整数
%e将浮点数输出为科学计数的十进制数
%f将浮点数输出为十进制数
%g将浮点数输出为十进制数,根据值和精度可能以科学计数法显示
%h通过hashCode()方法输出的16进制数
%n换行符
%o八进制数
%s字符串
%t%t是日期/时间转换的前缀。后面还需要跟其他的标识
%x整数的十六进制字符串

四、String类的常用方法

方法描述
char charAt(int index)返回指定索引index处的 char 值
int compareTo(Object o)将此字符串和另一个对象比较大小
String concat(String str)将指定字符串连接到此字符串的结尾
boolean startsWith(String prefix)测试此字符串是否以指定的前缀开始
boolean endsWith(String suffix)测试此字符串是否以指定的后缀结束
boolean equals(Object o)比较是否相等
boolean equalsIgnoreCase(String anotherString)忽略大小写判断两串是否相等
byte[] getBytes()变成字节数组返回
int hashCode()返回字符串的哈希码
int indexOf(char ch)返回指定字符在此字符串中第一次出现处的索引
int lastIndexOf(char ch)返回指定字符在此字符串中最后一次出现处的索引
int length()返回字符串长度,空格也算一个字符
boolean matches(String regex)此字符串是否匹配给定的正则表达式
String replace(char oldChar, char newChar)newChar 替换此字符串中出现的所有 oldChar,并且返回新的字符串
String replaceAll(String regex, String replacement)使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串
String[] split(String regex)String[] split(String regex)
String substring(int beginIndex, int endIndex)从位置beginIndex到endIndex截取字符串,返回新的子字符串
char[] toCharArray()char[] toCharArray()
String toLowerCase()此字符串中的所有字符都转换为小写
String toUpperCase()此字符串中的所有字符都转换为大写
String trim()返回字符串的副本,忽略前导空白和尾部空白
static String valueOf(primitive data type x)返回给定data type类型x参数的字符串表示形式
contains(CharSequence chars)判断是否包含指定的字符
isEmpty()判断字符串是否为空,空格也算为空

五、StringBuffer 和 StringBuilder 类

1. String和StringBuffer、StringBuilder 类的区别

String是只读字符串,引用的字符串内容是不可更改的,当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。

在使用 StringBuffer 类时,每次都会对 StringBuffer 对象本身进行操作,而不是生成新的对象,所以如果需要对字符串进行修改推荐使用 StringBuffer。

StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 的方法完全相同。区别是StringBuilder 是在单线程环境下使用,它的方法没有被synchronized修饰,不是线程安全的(不能同步访问)。

由于 StringBuilder 不需要加锁,相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。

然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类。

2.StringBuffer 方法

方法描述
append()将指定的字符串追加到此字符序列
reverse()将此字符序列用其反转形式取代
delete(int start, int end)移除此序列的子字符串中的字符
insert(int offset, int i)将 int 参数的字符串表示形式插入此序列中
insert(int offset, String str)将 str 参数的字符串插入此序列中
replace(int start, int end, String str)使用给定 String 中的字符替换此序列的子字符串中的字符
setCharAt(int index, char ch)将给定索引处的字符设置为 ch
setLength(int newLength)设置字符序列的长度
substring(int start, int end)返回一个新的 String,它包含此序列当前所包含的字符子序列
charAt(int index)返回此序列中指定索引处的 char 值
indexOf(String str)返回第一次出现的指定子字符串在该字符串中的索引
length()返回长度(字符数)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值