美文网首页
进阶:String

进阶:String

作者: 雪上霜 | 来源:发表于2020-04-29 14:42 被阅读0次
package com.Hanjiangxue.javase.string;

//位于java.lang.String
//String表示字符串类型,属于引用数据类型,不属于基本数据类型。
//在Java中随便使用双引号括起来的都是String对象。
//Java中规定,双引号括起来的字符串是不可变的。
//在JDk双引号括起来的字符串存储在方法区的常量池中,因为字符串实际中开发频繁,为了执行效率,所以把字符串放到常量池中。
public class StringTest01 {
    public static void main(String[] args) {
        //这两行代码在底层创建了3个字符串对象,在字符串常量池中。
        String s1 = "abcdef";
        String s2 = "abcdef"+"xy";

        //使用new出来的字符串对象的位置。
        //new一定在堆里面开辟空间
        //
        String s3 = new String("xy");
    }
}

image.png image.png
package com.Hanjiangxue.javase.string;


public class StringTest02 {

    public static void main(String[] args) {
        String s1 = "hello";
        String s2 = "hello";

        System.out.println(s1 == s2);

       String x = new String("xyz");
        String y = new String("xyz");

        System.out.println(x == y);
    }
}

image.png
package com.Hanjiangxue.javase.string;


public class StringTest02 {

    public static void main(String[] args) {
        String s1 = "hello";
        String s2 = "hello";

        System.out.println(s1 == s2);

        String x = new String("xyz");
        String y = new String("xyz");

        System.out.println(x == y);

        //字符串之间的比较不能使用==,使用equals。

        System.out.println(x.equals(y));

        String k = new String("testString");
        System.out.println("testString".equals(k));//建议使用,避免空指针异常。
        System.out.println(k.equals("testString"));


    }
}

image.png
package com.Hanjiangxue.javase.string;


public class StringTest02 {

    public static void main(String[] args) {
        String s1 = "hello";
        String s2 = "hello";

        System.out.println(s1 == s2);

        String x = new String("xyz");
        String y = new String("xyz");

        System.out.println(x == y);

        //字符串之间的比较不能使用==,使用equals。

        System.out.println(x.equals(y));

        String k = new String("testString");
        System.out.println("testString".equals(k));//建议使用,避免空指针异常。
        System.out.println(k.equals("testString"));


    }
}

package com.Hanjiangxue.javase.string;

//方法:String s = new Stirng("")
//  String s = "";
//  String s = new String(char数组);
//  String s = new String(char数组,起始下标,长度);
//  String s = new String(byte数组);
//  String s = new String(byte数组,起始下标,长度);
public class StringTest03 {
    public static void main(String[] args) {
        //一共三个对象,字符串常量池对象“hello”
        //堆中两个。
        String s1 = new String("hello");
        String s2 = new String("hello");

        byte[] bytes = {97,98,99};
        String s3 = new String(bytes);

        //对toString方法重写了。
        System.out.println(s3);//输出为字符串本身。

        String s4 = new String(bytes,1,2);
        System.out.println(s4);

        //将char数组全部转换成字符串。
        char[] chars = {'我','是','中','国','人'};
        String s5 = new String(chars);
        System.out.println(s5);

        String s6 = new String(chars,1,2);
        System.out.println(s6);


    }
}

package com.Hanjiangxue.javase.string;

public class StringTest05 {
    public static void main(String[] args) {
        //String中常用的方法。
        //1、char charAt(int index)

        char c = "中国人".charAt(1);//只要是对象就可以.
        System.out.println(c);

        //2、int compareTo(String anotherString)
        System.out.println("abc".compareTo("abc"));//相同0,前小后大(-1),前大后小(1)。

        System.out.println("abcd".compareTo("abce"));
        System.out.println("abce".compareTo("abcd"));

        System.out.println("abc".compareTo("bac"));


        //3、boolean contains(CharSequence s)
        //判断前面的字符串中是否包含后面的子字符串。
        System.out.println("helloword.java".contains("java"));
        System.out.println("http://helloword.java".contains("https"));

        //4、boolean endsWith(String suffix)
        //判断当前字符串是否以某个字符串结尾。
        System.out.println("test.txt".endsWith(".txt"));

        //5、boolean equals(Object anObject)
        //判断两个字符串是否相等。

        System.out.println("");

        //6、boolean equalsIgnoreCase(String anotherString);
        //判断两个字符串相等,并且忽略大小写。
        System.out.println("ABC".equalsIgnoreCase("Abc"));

        //7、byte[] getBytes()
        //将字符串转换为字节数组
        byte[] bytes1  = "abcdef".getBytes();
        for(int i = 0;i < bytes1.length;i++) {
            System.out.println(bytes1[i]);
        }

        //8、int indexOf(String str)
        //判断某个字符串在当前字符串中第一次出现处的索引
        System.out.println("abcindn".indexOf("abc"));

        //9、boolean isEmpty()
        //判断字符串是否为空
        String s = "fj";
        System.out.println(s.isEmpty());

        //10、int length()
        //判断字符串长度
        //判断数组长度是length属性,判断字符串长度为length()方法。面试。
        System.out.println("abc".length());

        //11、int lastIndexOf(String str)
        //判断某个子字符串在当前字符串中最后一次出现的索引下标
        System.out.println("ourgnnsooawjwnraoaboaav=ab".lastIndexOf("ab"));


        //12、String replace(CharSequence target,CharSequence replacement)
        //String的父接口就是CharSequence。 替换
        String newString = "http://www.baidu.com".replace("http://","https://");
        System.out.println(newString);

        //13、String[] split(String regex)
        //拆分字符串
        String[] ymd = "1980-10-11".split("-");
        for(int i = 0;i < ymd.length;i++){
            System.out.println(ymd[i]);
        }

        //14、boolean startsWith(String prefix)
        //判断某个字符串是否以某个子字符串开始
        System.out.println("http://www.baidu.com".startsWith("http"));
        System.out.println("http://www.baidu.com".startsWith("https"));

        //15、String subString(int beginIndex)
        //截取字符串
        System.out.println("http://www.baidu.com".substring(7));

        //16、String subString(int beginIndex,int endIndex)
        //[beginIndex,endIndex)
        System.out.println("http://www.baidu.com".substring(7,10));


        //17、char[] toCharArray()
        //将字符串转换成char数组

        char[] chars = "我是中国人".toCharArray();
        for(int i = 0;i < chars.length;i++){
            System.out.println(chars[i]);
        }

        //18、String toLowerCase()
        //转换为小写。
        System.out.println("ABIDN".toLowerCase());

        //19、String toUpperCase()
        //转换成大写。
        System.out.println("ajgg".toUpperCase());


        //20、String trim()
        //去除字符串前后空白
        System.out.println("   hello   wor".trim());

        //21、String只有一个方法是静态的,不需要new对象
        //valueOf:将非字符串转换成字符串。
        //这个静态的valueOf方法参数是一个对象的时候,会自动调用该对象的toString()方法。
        String s1 = String.valueOf(100);
        System.out.println(s1);

        String s2 = String.valueOf(new Customer());
        System.out.println(s2);
        //本质上System.out.println方法会先将数据转换成字符串再输出。

    }
}

class Customer{
    @Override
    public String toString() {
        return "Customer{}";
    }
}

相关文章

网友评论

      本文标题:进阶:String

      本文链接:https://www.haomeiwen.com/subject/tjcgwhtx.html