黑马程序员技术交流社区

标题: 字符串常用方法总结 [打印本页]

作者: 蓝色风信子    时间: 2016-5-30 23:48
标题: 字符串常用方法总结
String类
  字符串是一个特殊的对象。
字符串最大的特点:一旦被初始化,就不能被改变。


String s1="abc"; s1是一个类类型变量,"abc"是一个对象。
String s2=new String("abc");
s1在内存中有一个对象,s2在内存中有两个对象。
s1==s2
s1.equals(s2)
Object类中的equals方法比较的是内存地址,String类复写了Object类中的equals方法,该方法用于判断字符串是否相同。

常见功能----判断和获取
1、获取
    1.1 获取字符串长度:返回值类型int  str.length();
    1.2 根据位置获取某个位置上的字符:返回值类型char  charAt(int index);
    1.3 根据某一位置上的字符获取这个字符的位置:
         返回值类型int   indexOf(int ch) ;返回的是ch在字符串中第一次出现的位置。以Unicode代码单元表示

         返回值类型int   indexOf(int ch,int fromIndex); 返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索。                     如果未出现该字符,则返回 -1。

         返回值类型int   indexOf(String str);返回指定子字符串在此字符串中第一次出现处的索引。

         返回值类型int   indexOf(String str,int formIndex);返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始。

         返回值类型int   lastIndexOf(int ch) ;
         返回值类型int   lastIndexOf(int ch,int fromIndex) ;
         返回值类型int   lastIndexOf(String str) ;
         返回值类型int   lastIndexOf(String str,int fromIndex) ;   
2、判断
   2.1  字符串中是否包含某一个子串 返回值类型boolean   contains(str);    当且仅当此字符串包含指定的 str 序列时,返回 true。
   2.2  字符串中是否有内容  isEmpty();  当且仅当 length() 为 0 时返回 true。
   2.3  测试此字符串是否以指定的前缀开始。startsWith(String prefix);
   2.4  测试此字符串是否以指定的后缀结束。endsWith(String suffix);
   2.5  判断字符串内容是否相同 。                  equals(str);
   2.6  判断字符串内容是否相同并忽略大小写。equalsIgnore(str);  
3、转换
   3.1 将字符数组转换成字符串  public static String copyValueOf(char[] data)返回指定数组中表示该字符序列的 String。 String.copyValueOf(char[] data);
                                                                           copyValueOf(char[],offset,count);
                                                        static           valueOf(char[] data)
                                                                           valueOf(char[],offset,count);
        构造函数 String(char[])    String(char[],offset,count) 例:char[] arr={'a','f','r'}       String s=new string(arr);
   3.2 将字符串转换成字符数组  toCharArray(str)将此字符串转换为一个新的字符数组。char[] ch=str.toCharArray();
   3.3 将字符串转换成字节数组  getBytes()  使用平台的默认字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。
   3.4 将字节数组转换成字符串  构造函数 String(byte[])    String(byte[],offset,count)
   3.5 将基本数据类型转换成字符串 sattic  valueOf(int); double,float ,long
4、替换
    str.replace(char oldChar,char newChar);  返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。
5、切割
    str.split(String sign); sign代表分隔符。也可根据给定正则表达式的匹配拆分此字符串
6、获取子字符串
    subString(int beginIndex);
    subString(int beginIndex,int endIndex);包含头,不包含尾。
7、大小写转换、去除空格、比较
     str.toUpperCase();
     str.toLowerCase();
     str.trim();
     str.equals(String otherstr);




StringBuffer
StringBuffer是字符串缓冲区。
特点:
1、是一个容器。而且长度是可变化的。
2、可以直接操作多个数据类型。
3、最终可以通过toString方法变成字符串。
C creat U update R read D delete
1、存储
    返回值类型StringBuffer append():将指定数据作为参数添加到已有数据的结尾处。
     StringBuffer  insert(index,数据);:可以将数据插入到指定index位置。
2、删除
     StringBuffer   delete(start,end);删除缓冲区中的数据,包含start,不包含end.
     StringBuffer   deleteCharAt(index);删除指定位置的字符
      清空缓冲区     sb.delete(0,sb.length());
3、获取
     返回值类型String   substring(int satrt,int end);
4、修改
     StringBuffer    replace(int start,int end,str);
     void setCharAt(int index,char ch)//没有返回值
5、反转
     StringBuffer    reverse();
JDK1.5版本之后出现了StringBuilder
        StringBuffer是线程同步。
        StringBuilder线程不同步。
升级三个因素:提高效率、简化书写、提高安全性

作者: kongdun1991    时间: 2016-6-2 00:11
谢谢你的分享,挺好的。{:2_30:}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2