A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李培根 金牌黑马   /  2012-12-8 15:10  /  1230 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

String类:
       
        字符串是一个特殊的对象。
        字符串一旦初始化就不可以被改变。
        String str = "abc";//"abc"存储在字符串常量池中。
        池中没有就建立,池中有直接用。
        String s1 = "abc";//在常量池中创建一个对象
        String s2 = new String("abc");//在堆内存中创建两个对象,一个new一个,一个字符串对象。
        System.out.println(s==s1);true
        System.out.println(s==s2);false
        System.out.println(s.equals(s2));true  String类覆写了Object中的equals方法建立了String类自己的判断对象是否相同的依据。
       
构造函数:
        1.String s = new String();
       
        2.byte[] arr = {97,66,67,68};
          String s = new String(arr);
          System,out.println("s="+S);//打印结果:s=aBC
       
        3.char[] arr = {'w','a','p','q,','x'};
          String s = new String(arr);
          System.out.println("s="s);//打印结果:s=wapqx
          
        4.char[] arr ={w,a,p,q,x};
          String s = new String(arr,1,3);//从1开始取3个。
          System.out.println("s="s);//打印结果:s=apq
-----------------------------------------------------
String类        :常见功能
1.获取  
        1.1获取字符串中字符的个数(长度)
                int length();
       
        1.2根据位置获取字符。
                char charAt(int index);
       
        1.3根据字符获取位置,返回第一次出现的位置。(必须会)
                int  indexOf(int ch);
                int  indexOf(int ch,int fromIndex);从指定位置开始索引,返回第一次出现的位置。
                int  indexOf(String str);
                int  indexOf(String str,int fromIndex);
               
                int  lastIndexOf(int ch);
                int  lastIndexOf(int ch,int fromIndex);
                int  lastIndexOf(String str);
                int  lastIndexOf(String str,int fromIndex);
               
        1.4获取字符串中一部分字符串。也叫子串。
                String substring(int beginIndex,int endIndex);
                String substring(int beginIndex);
                返回一个新的字符串,从指定的beginIndex开始,直到索引endIndex-1处结束。
                包含begin不包含end
2.转换
        2.1将字符换变成字符串数组。
                String[] split(String regex);涉及到正则表达式。       
        例: String s = "张三,李四,王五";
                  String[] arr = s.split(",");
                 
        2.2将字符变成字符数组。
                char[]  toCharArray();
       
        2.3将字符串变成字节数组。
                byte[]  getBytes();
               
        2.4将字符串中的字母转成大小写。
                String toUpperCase();
                String toLowerCase();
       
        2.5将字符串中的内容进行替换。
                String replace(char oldChar,char newChar);
                String replace(String s1,String s2);
       
        2.6将字符串两端的空格去除。(开发中非常有用)
                String trim();
               
        2.7将字符串进行连接。
                String  conat(String);               
                System.out.println("abc".concat("kk"));
                System.out.println("abc"+"kk");//等效
       
        2.8
                System.out.println(String.valueOf(4)+1);
                System.out.println(""+4+1);//等效
               
3.判断
        3.1两个字符串内容是否相同。
                boolean equals(Object obj);
                boolean equalsIgnoreCase(string str);//忽略大小写进行比较。
               
        例:String s = "abc";
                System.out.println(s.equals("ABC".toLowerCase()));
                System.out.println(s.equalsIgnoreCase("ABC"));
       
        3.2字符串中是否包含指定字符串。
                boolean contains(string str);
       
        3.3字符串是否以指定字符串开头,是否以指定字符串结尾。
                boolean startsWith(string);
                boolean endsWith(string);
               
4.比较: compareTo();
        int compareTo(String anotherString)
                System.out.println("a".compareTo("b"));//-1
                System.out.println("a".compareTo("A"));//32
                System.out.println("abc".compareTo("bcd"));//-1
               
5.intern();对字符串池进行操作的。(开发一般不用。)
               
                String s1 = new String("abc");
                String s2 = s1.intern();//池中有就使用,池中没有就建立。
                System.out.println(s1==s2);//false
                通过new创建不在常量池中。
-----------------------------------------------------
StringBuffer:就是字符串缓冲区。
        用于存储数据的容器。
        特点:
                1.长度可变。
                2.可以存储不同类型数据。
                3.最终要转成字符串进行使用。
                4.可以对字符串进行修改。
               
        既然是一个容器对象。应该具备什么功能呢?
        1.添加:
                StringBuffer        append(data); short和byte不能添加。
                StringBuffer        insert(index,data);
       
        2.删除:
                StringBuffer        delete(start,end):包含头不包含尾。
                StringBuffer        deleteCharAt(int index):删除指定位置的元素。
                清空缓冲区。缓冲区还在。
                sb.delete(0,sb.length());
       
        3.查找。
                charAt(index);
                int indexOf(string);
                int lastIndexOf(string);
               
        4.修改
                StringBuffer        replace(start,end,string);
                void        setCharAt(index,char);
               
        增删改查;CURD create update read delete
       
        设置长度:setLength(int);
        反转:reverse();
       
StringBuffer--可变长度数组:
        数组是固定长度的。
        可变长度原理:会创建新数组,复制原数组内容到新数组。
-------------------------------------------------
StringBulider:JDK1.5之后出现,线程不同步,效率更高。
        功能用法和StringBuffer一样。
        Stringbuffferx线程是同步的。通常用于多线程。
        StringBulider线程不同步。通常用于单线程,他的出现提高效率。

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马