您的位置:首页 > 职场人生

黑马程序员---String学习笔记

2015-05-03 20:48 246 查看

String学习笔记

(一)String 一旦初始化就不可被改变;

package cn.cx.string.study;
publicclass Demo01 {
    publicstaticvoid main(String[] args) {
        String s1  =
"asd";//s1是一个类类型变量,"asd"是一个对象。
       
       
//s1 = "as";//"asd"没变,s1这个引用变了
       
        String s2 = new String("asd");
        System.out.println(s1==s2);//false,比较地址值
        System.out.println(s1.equals(s2));//true,String类覆写了equals方                     
                     法,定义了自身独特的    
                                           
    //内容,并未再去比较地址值。
       
       //s1与s2的区别:s1代表一个对象,s2有两个

    }

package cn.cx.string.study;
 
publicclass Demo02 {
    publicstaticvoid main(String[] args) {
        String s1 =
"abc";
        String s2 =
"abc";
        String s3 = new String("abc");
        System.out.println(s1==s2);//true,指向同一对象
        System.out.println(s1==s3);//false
       
}
}
(二)四道练习:

package cn.cx.string.study;
 
publicclass MyTrim {
 
    publicstaticvoid main(String[] args) {
       
       
/*String s = "   dfg jh      ";
        System.out.println(myTrim(s));
        System.out.println(myTrim(s).length());*/
       
//System.out.println(myReverse("asdfrth"));
       
/*String ori = "aaffgsgaaghdaafraalaak";
        String myStr = "aa";
        System.out.println(myNum2(ori,myStr));*/
        String l =
"asdfgjavajdch";
        String s =
"asjavappoub";
        System.out.println(getMaxSubStr(l,s));
    }
    //自定义trim
    publicstatic String myTrim(String str) {
       
        int start = 0;
        int end = str.length()-1;
        while(start<end && str.charAt(start)==' ') {
            start ++;
        }
        while(start<end && str.charAt(end)==' ') {
            end --;
        }
       
        return str.substring(start, end+1);
    }
    //反转
    publicstatic String myReverse(String str) {
        char[] chs = str.toCharArray();
        for(int i=0; i<chs.length/2;
i++) {
            char temp = chs[i];
            chs[i] = chs[chs.length-i-1];
            chs[chs.length-i-1] = temp;
        }
        returnnew String(chs);
    }
    //获取一个字符串在另一个字符串的次数
    publicstaticint myNum(String oriStr, String myStr) {
       
        int num = 0;
        int index = 0;
        while((index = oriStr.indexOf(myStr)) != -1) {
            num ++;
            oriStr = oriStr.substring(index+myStr.length(), oriStr.length());
            System.out.println(oriStr);
        }
        return num;
    }
    publicstaticint myNum2(String oriStr, String myStr) {
        int num = 0;
        int index = 0;
        while ((index=oriStr.indexOf(myStr, index))!= -1) {
            num ++;
            index = index + myStr.length();
        }
        return num;
    }
    //获取两字符串中最大相同子串
    publicstatic String getMaxSubStr(String l, String s) {
        String temp = null;
        for(int i=0; i<s.length(); i++) {
            for(int j=0,z=s.length()-i; z!=s.length()+1;
j++,z++) {
                temp = s.substring(j, z);
                if(l.contains(temp)) {
                    return temp;
                }
            }
        }
        returnnull;
    }
(三)StringBuffer是字符串缓冲区,是容器,且长度可变,线程同步。StringBuilder是线程不同步的,单线程时使用效率高。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java