一、String类的常用方法
1 1.获取: 2 1)获取字符串str长度 3 int i = str.length(); 4 2)根据位置(index)获取字符 5 char c = str.charAt(index); 6 3)获取字符在字符串中的位置 7 int i =str.indexOf(char ch); //获取的是第一次出现的位置 8 int i =str.indexOf(char ch ,int index); //从位置index后获取ch出现的第一次的位置 9 int i =str.indexOf(str1) ;// 获取str1 在str 第一次出现的位置 10 int i=str.indexOf(str1, index0);//获取从index位置后str第一次出现的位置 11 int i = str.lastIndexOf(ch或者 str1) //获取ch或者str1最后出现的位置 12 13 2.判断 14 1)判断是否以指定字符串str1开头、结尾 15 boolean b = str.startWith(str1) //开头 16 boolean b = str.endsWith(str1) //结尾 17 2)判断是否包含某一子串 18 boolean b = str.contains(str1) 19 3)判断字符串是否有内容 20 boolean b = str.isEmpty(); 21 4)忽略大小写判断字符串是否相同 22 boolean b = str.equalsIgnoreCase(str1); 23 24 3.转换 25 1)将字符数组 -char[] ch- 转化成字符串 26 i. String str =new String(ch); //将整个数组变成字符串 27 ii. String str =new String(ch,offset,count) 28 //将字符数组中的offset位置之后的count个元素转换成字符串 29 1. String str =String.valueOf(ch); 30 2. String str =String.copyValueOf(ch,offset,count); 31 3. String str =String.copyValueOf(ch); 32 2)将字符串转化为字符数组 33 char[] ch = str.toCharAarray(); 34 3)将字节数组转换为字符串 35 同上1) 传入类型变为Byte[]; 36 4)将字符串转换为字节数组 37 Byte[] b = str.toByteArray(); 38 5)将基本数据类型装换成字符串 39 String str = String.valueOf(基本数据类型数据); 40 若是整形数据可以用 字符串连接符 + "" 41 eg : String str = 5+""; 42 得到字符串 “5” 43 44 4.替换 replace(); 45 str.replace(oldchar,newchar)//将str里oldchar变为newchar 46 str.replace(str1,str2)//将str中str1,变为str2 47 48 5.切割 split(); 49 String[] str1 = str.split(","); //将str用 ","分割成String数组 50 51 6.子串 52 String s = str.substring(begin); 53 // s 为 str 从begin位置到最后的字符串 54 String s = str.substring(begin,end) 55 //s 是 str 从begin 位置到end 位置的字符串 56 57 7.转换大小写: 58 String s1 = str. toUpperCase(); //将str变成大写字母 59 String s2 = str. toLowerCase(); //将str变成小写字母 60 除去空格: 61 String s =str.trim(); 62 比较: 63 int i = str.compareTo(str1);
二、 StringBuffer常用方法
1 /***StringBuffer 是一个容器,长度可变,可以直接操作字符串,用toString方法变为字符串 **/ 2 1.存储 3 1)append(); //将指定数据加在容器末尾,返回值也是StringBuffer 4 eg: 5 StringBuffer sb = new StringBuffer(//可以加str); 6 StringBuffer sb1=ab.append(数据) //数据可以任何基本数据类型 7 注:此时sb == sb1他们是同一对象,意思是可以不用新建sb1直接 sb.append(数据) 使用时之后接使用sb 8 2)insert();// 插入 9 sb.insert(index ,数据); 10 2.删除 11 sb.delete(start ,end); //删除start到end的字符内容 12 //注意:这里的所有包含index的操作都是含头不含尾的 13 sb.deleteCharAt(index);//删除指定位置的字符 14 //清空StringBuffer缓冲区 15 sb=new StringBuffer(); 16 sb.delete(0,sb.length()); 17 3.获取 18 char c = sb.charAt(index);//获取index上的字符 19 int i = sb.indexOf(char)://获取char字符出现的第一次位置 20 //与 String 中的获取方法一致参考前面 21 22 4.修改 String类中无次操作方法 23 sb =sb.replace(start,end,string)//将从start开始到end的字符串替换为string; 24 sb.setCharAr(index ,char);//将index位置的字符变为新的char 25 26 5.反转 sb.reverse();//将sb倒序 27 6. getChars(int srcBegin,int srcEnd,char[] ch,int chBegin) 28 //将StringBuffer缓冲区中的指定数据存储到指定数组中
三、StringBuilder StringBuilder 和 StringBuffer 方法和功能完全一致只是一个是早期版本(StringBuffer)是线程安全的,由于发现利用多线程堆同一String数据操作的情况是很少的,为了提高效率idk1.5以后有StringBuilder 类。意思是多线程操作同一字符串的时候用StringBuffer 安全,现在一般用StringBuilder
参考:https://blog.csdn.net/qq_34107571/article/details/80098055