黑马程序员_java-String类<五>

---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------


1,String类:字符串

        String():

              String s = new String();

              s = "hello";


        String(byte[] bys):字节数组参数 

              byte[] bys = {97,98,99,100,101};

              String s = new String(bys);


        String(byte[] bys,int index,int length):字节数组-->字符串 

              byte[] bys = {97,98,99,100,101};

              String s = new String(bys,1,2);


        String(char[] chs):字符数组参数

              char[] chs = {'a','b','c','d','e'};

              String s = new String(chs);


       String(char[] chs,int index,int length):字符数组-->字符串 

              char[] chs = {'a','b','c','d','e'};

             String s = new String(chs,1,2);


        String(Stringstr):字符串传参数

              char[] chs = {'a','b','c','d','e'};

              String ss = new String(s);


字符串对象一旦被创建就不能被改变。 指的是字符串常量值不改变。


        判断

        boolean equals(Object obj);判断两个字符串的内容是否相同,复写Object的方法

        boolean equalsIgnoreCase(String str);判断两个字符串的内容是否相同, 不区分大小写

        boolean contains(String str);判断一个字符串中是否包含另一个字符串

注意:判断字符串是否包含特殊字符.直接表示为str.contains(".")

        boolean endsWith(String str);测试此字符串是否以指定的后缀结束

        boolean startsWith(String str);测试此字符串是否以指定的前缀开始

        boolean isEmpty();测试字符串是否为空

       获取

        int length():返回此字符串的长度

        char charAt(int index):返回指定索引处的 char

        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);从指定的索引开始反向搜索。

        String substring(int beginIndex) ;返回一个新的字符串,它是此字符串的一个子字符串。

        String substring(int beginIndex, int endIndex) ;包含头不包含尾。

        转换

        byte[] getBytes();字符串--> 字节数组

        void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin);将字符从此字符串复制到目标字符数组。

        char[] toCharArray();字符串-->字符数组

        static String copyValueOf(char[] data);返回指定数组中表示该字符序列的 String。

        static String copyValueOf(char[] data, int offset, int count);返回指定数组中表示该字符序列的 String。

        static String valueOf;把该数据类型的数据转换成字符串。

        String toLowerCase();换成小写

        String toUpperCase();换成大写

         字符串的连接: String concat(String str);将指定字符串连接到此字符串的结尾。

        替换

            String replace(char oldChar, char newChar);用新字符替换旧字符(替换所有)

            String replace(String target, String replacement);用新的子串换旧串

        分割

            String[] split(String regex);根据指定的字符串把一个字符串分割成一个字符串数组

            String trim();去除字符串的前后空格

        比较

            int compareTo(String str);按字典顺序比较两个字符串。

            int compareToIgnoreCase(String str);按字典顺序比较两个字符串,不考虑大小写。

2,StringBuffer(线程安全的):字符串的缓冲区,是一个容器,长度可变。

        StringBuffer();构造一个其中不带字符的字符串缓冲区,初始容量为 16 个字符。

        StringBuffer(int num);构造一个不带字符,但具有指定初始容量的字符串缓冲区。

        StringBuffer(String str);构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容。


        添加

            append:添加各种类型的数据

            insert:在容器指定位置插入各种类型的数据。

        删除

            deleteCharAt:删除指定位置的字符

            delete还可以用于清空StringBuffer的缓冲区

        替换

            replace

        获取

            charAt

        长度和容量

            length()元素的个数

            capacity元素的理论值

        获取元素的位置

            indexOf

            lastIndexOf

        截取

            substring(int start)

            substring(int start,int end)

        反转

            reverse

字符串和StringBuffer的转换

        String-->StringBuffer通过构造:

           :StringBuffer sb = new StringBuffer(String str)

StringBuffer--String通过toString方法

           :StringBuffer sb = new StringBuffer();

               sb.toString();

 

3,StringBuilder:不保证线程安全

    StringBuffer的功能是一样的, 一般来说,我们写的程序都是单线程的,所以,用StringBuilder,效率高。

    JDK版本的升级原则:

    a:提高效率

    b:提高安全性

    c:简化书写

---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------

详细请查看:<a href="http://edu.csdn.net" target="blank">http://edu.csdn.net</a>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值