一、字符相关类型
分类:
1.不可变的字符序列:
String类2.可变的字符序列:
StringBuilder类——->线程不安全的 执行效率相对较高
StringBuffer类——->线程安全的 执行效率相对较低
二、不可变的字符序列—-String类
2,1构造方法
参数为字符数组://String str=new String(new char[]{‘a’,’b’,’c’});
参数为字符数组+偏移量+count://String str=new String(new char[]{‘a’,’b’,’c’,’d’},0,3);// 第一个参数 char数组
// 第二个参数 偏移量 从数组中第几个数据开始写入String字符串
// 第三个参数 count 写几个
// 偏移量+ count 不能超过数组的长度参数为字节数组://String str=new String(new byte[]{1,2,3});
直接赋值://String str=“abc”;
2,2基本方法
1)用来创造新字符串的方法
拼接:str.Concat(str)【拼接字符串】
替换:str.replace(要被替换的str,用于替换的)
替换:replaceAll(String regex, String replacement)
替换第一个:String replaceFirst(String regex, String replacement)
截取:str.substring(int beginIndex)或者str.substring(int beginIndex, int endIndex)
转换为小写:str.toLowerCase()
转换为大写:toUpperCase()
去除首尾空格:str.trim()
2)查找字符的方法
匹配开头返回Boolean:str.startsWith(String prefix, int toffset) 【prefix为匹配的字符串,offset偏移量】或startsWith(String prefix)
匹配结尾:str.endsWith(String suffix)
字符串第一次出现的位置:indexOf(str) 或indexOf(str, int fromIndex) 【fromIndex为从哪个下标开始找】(没有返回-1,下同)
字符串最后一次出现的位置:lastIndexOf(int ch) 或lastIndexOf(int ch, int fromIndex) 【fromIndex是从左向右数,然后从这个位置向左去匹配】
【该字符串是否含有指定字符串】contains(string regex) //参数为判断的字符串
3)比较字符的方法
判断内容是否相等:str.equals(str)
忽略大小写比较:str.equalsIgnoreCase(str)
按字典顺序比较两个字符串:str1.compareTo(str);【先比较第一个字符,相等,就接着比,直到分出大小,全部相同,返回0,str1小则返回负数,大为正数】(得到的数值为两字符对应码的差值e-d=1),compareToIgnoreCase(String str)
匹配正则:str.matches(String regex)
4)其他
将不同基本类型转为字符串:String.valueOf(基本类型)
将字符串拆分为【字符数组】:str.toCharArray()
将字符串拆分为【字符串数组】:str.split(regex)或split(String regex, int limit) 【limit限制拆分的个数】
判断字符串是否为空:str.isEmpty() 【当且仅当 length() 为 0 时返回 true】
获取字符串长度:str.length()
charAt(index)【获取字符串中对应下标值的字符,返回char类型】
三、可变的字符序列
StringBuffer类
与String类相比较,新增方法:
反向排列:buffer.reverse()
转为字符串:buffer.toString()
将字符串插入指定位置:buffer.insert(1, “ww”)【参数1:偏移量】
删除指定下标字符:buffer.deleteCharAt(2)
删除指定范围字符串:buffer.delete(1, 2)【参数1:开始下标,参数2:结束下标】
在后面添加字符串:buffer.append(“abc”)
注意:
没有频繁的追加或者删除字符串内容 ——————–用String
频繁的操作追加或者是删除字符串中的内容的时候—————- 用StringBuffer 比较有优势 节省内存开销