Java String详解

来源:互联网 发布:海绵宝宝 知乎 编辑:程序博客网 时间:2024/06/07 12:55

String常见用法

String是一个描述字符串事物的类,提供了多个对字符串进行操作的方法。

1、获取

int length():获取字符串长度;

char charAt(int index):获取index角标位置上的字符,角标从0开始;

int indexOf(int ch):获取ch在字符串中第一次出现的位置,此处参数可以传字符的ASCII码值,也可传字符;如果没找到则返回-1;

int indexOf(int ch, int fromIndex):从fromIndex指定的位置开始,获取ch在字符串中出现的位置;

int indexOf(String str):获取str在字符串中第一次出现的位置;

int indexOf(String str, int fromIndex):从fromIndex指定的位置开始,获取str在字符串中出现的位置;

2、判断

boolean contains(str):字符串中是否包含str子串;

boolean isEmpty():字符串是否有内容,原理是判断字符串长度是否为0,当字符串为null时此方法会抛异常;

boolean startsWith(String str):字符串是否以str内容开头的;

boolean endsWith(String str):字符串是否以str内容结尾的;

boolean equals(String str):判断两个字符串中的内容是否相同,String类中重写了Object中的equals方法;

boolean equalsIgnoreCase(String str):判断两个字符串中的内容是否相同,忽略大小写;

3、转换

static String valueOf(boolean/char/float/double/int/long/char[]):将对应类型转换成字符串;

static String valueOf(char[], int offset, int count):将字符数组中的指定部分转换成字符串;

staic String copyValueOf(char[], int offset, int count):将字符数组中指定部分转换成字符串;

char[] toCharArray():将字符串转换成字符数组;

byte[] getBytes():将字符串转成字节数组;

4、替换

String replace(String oldchar, String newchar):用新字符串替换掉所有的旧字符串;

5、切割

String[] split(String/regex):安给定的字符串或正则表达式来切割字符串;

6、截取

String substring(int beginIndex):获取指定角标后面的子串;

String substring(int beginIndex, int endIndex):获取指定角标中间的字符串;

7、部分常用方法

String toUpperCase():将字符串全部转成大写;

String toLowerCase():将字符串全部转成小写;

String trim():去除字符串两边的空格;

int compareTo():对两个字符串进行自然顺序的ASCII码的比较;


StringBuffer用法

StringBuffer和String一样,也是用来描述字符串的类;但StringBuffer和String的内部实现不同,StringBuffer是以容器的形式来实现的,StringBuffer在处理字符串时不产生新对象,在内存的使用和速度上是远远优于String。所以在实际使用时,如果对字符串的修改比较频繁,使用StringBuffer更合适些。

作为一个数据容器都需要提供方便的增删改查接口功能。

1、新增

StringBuffer append(数据):将指定的数据作为参数添加到已有数据结尾处;

StringBuffer append(int index, 数据):将数据插入到指定index的位置;

2、删除

StringBuffer delete(int start, int end):删除缓冲区中的数据,包含start,不包含end;

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

3、修改

StringBuffer replace(int start, int end, String str):用指定的字符串替换掉角标间的字符串;

void setCharAt(int index, char ch):替换掉指定角标位的字符;

4、查找

char charAt(int index):获取指定角标位的字符;

int indexOf(String str):获取第一次匹配字串处的角标,从左往右开始查找;

int lastIndexOf(String str):获取第一次匹配字符串处的角标,从右往左开始查找;

int length():获取容器的字符长度;

String substring(int start, int end):获取指定区间的字符串;

5、其它常用方法

StringBuffer reverse():将容器里的字符串反转;

viod getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin):将缓冲区中指定数据存储到指定字符数组中;


StringBuilder用法

StringBuilder是5.0新增特性,此类提供了一个与StringBuffer兼容的API。在有了StringBuffer后为什么还提供一个相同功能的StringBuilder?

升级的三个要素:提高效率;简化书写;提供安全性。而StringBuilder的出现就是为了提高效率。StringBuffer为线程安全,是因为用到了synchronized,那么每次访问就需要判断锁标志;而StringBuilder是非线程安全,直接访问即可;显然StringBuilder快于StringBuffer。而字符缓冲区被单线程使用的情况很普遍,此时使用StringBuilder较合理;如果在多线程中还是使用StringBuffer较好。




0 0
原创粉丝点击