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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Garron 中级黑马   /  2016-10-30 13:31  /  2013 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

String类的一些常用方法
字符串是最常用的对象,所以,我们有必要彻底的了解下它,下面我会列举常用的字符串里的方法,因为有很多,就不一一列举。
(1)public int length()
      返回此字符串的长度。长度等于字符串中 Unicode 代码单元的数量。

           public static void main(String[] args) {
                // String 中的常用方法介绍
                /*
                 * int length() 返回此字符串的长度。
                 */
                String s = "abcde";
                System.out.println(s.length());
        }


控制台输出:6

这个方法很简单:就是给你返回这个字符串的长度

(2)public boolean equals(Object anObject)
      将此字符串与指定的对象比较。当且仅当该参数不为 null,并且是与此对象表示相同字符序列的 String 对象时,结果才为 true。
     public static void main(String[] args) {
                // String 中的常用方法介绍
                /*
                 * public boolean equals(Object anObject)
                 *    将此字符串与指定的对象比较。当且仅当该参数不为 null,
                 *     并且是与此对象表示相同字符序列的 String 对象时,结果才为 true。
                 *     注:区分大小写
                 */
                //1.示例
                String s1 = "abc";
                String s2 = "abc";
                System.out.println(s1.equals(s2));//true
               
                String s3 = "abc";
                String s4 = "abd";
                System.out.println(s3.equals(s4));//false
               
                //equals 与 ==的区别
                String s5 = "abc";
                String s6 = "abc";
                System.out.println(s5==s6);//true
               
                String s7 = "abc";
                String s8 = new String("abc");
                String s9 = new String("ABC");
                /*
                 * 区别: ==:比较的是两个字条串的引用地址是否一致(明显s7和s8的引用地址不同)
                 *  equals:较的两个字符串是否一样(明显s7和s8的字符串是一样的)
                 *          注意:equals是区分大小写(参考s7.equals(s9)
                 *  实际上基本所有情况都是用equals
                 */
                System.out.println(s7==s8);//false
                System.out.println(s7.equals(s8));//true
                System.out.println(s7.equals(s9));//false
        }

(3)public boolean equalsIgnoreCase(String str)::比较字符串的内容是否相同,忽略大小写
     public static void main(String[] args) {
                // String 中的常用方法介绍
                /*
                 *  boolean equalsIgnoreCase(String str):比较字符串的内容是否相同,忽略大小写
                 *   举个常用的应用场景:校验你输入的验证码和你输入的是否一致
                 */
                String s1 = "abc";
                String s2 = "ABC";
                System.out.println(s1.equalsIgnoreCase(s2));//true
               
        }

(4)boolean contains(String str):判断大字符串中是否包含小字符串(有点像数学里面的包含)
    public static void main(String[] args) {
                // String 中的常用方法介绍
                /*
                 * boolean contains(String str):判断大字符串中是否包含小字符串(有点像数学里面的包含)
                 */
                String s1 = "StringDemo";
                /*
                 * 判断StringDemo 是 否包含
                 *    Demo:包含  所以返回的是true
                 *    demo:不包含  所以返回的是false
                 *   
                 */
                System.out.println(s1.contains("demo"));//false
                System.out.println(s1.contains("Demo"));//true
                /*
                 * 如果想忽略大小写是否包含,可以这样写
                 *   toLowerCase():将此 String 中的所有字符都转换为小写
                 *   toUpperCase():将此 String 中的所有字符都转换为大写
                 *   后面再详讲
                 */
                System.out.println(s1.toLowerCase().contains("demo".toLowerCase()));//true
                System.out.println(s1.toUpperCase().contains("demo".toUpperCase()));//true

               
        }

(5)boolean startsWith(String str):判断字符串是否以某个指定
   boolean endsWith(String str):判断字符串是否以某个指定的字符串结尾

   public static void main(String[] args) {
                // String 中的常用方法介绍
                /*
                 * boolean startsWith(String str):判断字符串是否以某个指定的字符串开头
                 * boolean endsWith(String str):判断字符串是否以某个指定的字符串结尾
                 */
               
                String s1 = "If you never abandon,I will in life and death";
               
                //startsWith(String str)
                System.out.println(s1.startsWith("If"));//true
                System.out.println(s1.startsWith("If you"));//true
                System.out.println(s1.startsWith("you"));//false
               
                //endsWithString str)
                System.out.println(s1.endsWith("th"));//true
                System.out.println(s1.endsWith("death"));//true
                System.out.println(s1.endsWith("deat"));//false
               
        }

(6)boolean isEmpty():判断字符串是否为空
public static void main(String[] args) {
                // String 中的常用方法介绍
                /*
                 * boolean isEmpty():判断字符串是否为空
                 */
                String s1 = "";
                String s2 = "  ";
                String s3 = null;
               
                System.out.println(s1.isEmpty());//true
                System.out.println(s2.isEmpty());//false 不去除空格,可用trim()方法去除左右空格
                /*
                 * 注:这个会抛空指针异常java.lang.NullPointerException
                 *    因为s3对象都不存在,所以不能调用方法
                 *    通常不知道字符串是否为null时,以想判断这个字符串是否为空,
                 *      写法是这样的:if(s3==null||s3.trim().isEmpty())
                 */
                System.out.println(s3.isEmpty());
       
        }

(7)char charAt(int index):获取指定索引位置的字符
     public static void main(String[] args) {
                // String 中的常用方法介绍
                /*
                 * char charAt(int index):获取指定索引位置的字符
                 */
                String s1 = "If you never abandon,I will in life and death";
                /*
                 * 这个方法索引是从0开始找
                 *    If you never abandon,I will in life and death
                 *    0123456789     ... ....                                       44
                 *    它的一个位置大概就是这样
                 */
                System.out.println(s1.charAt(0));//输出 :I
                System.out.println(s1.charAt(2));//输出 :空格
                System.out.println(s1.charAt(3));//输出 :y
       
        }
        }

(7)int indexOf(int ch):
          返回指定字符在此字符串中第一次出现处的索引。
   int indexOf(int ch,int fromIndex):
          返回指定字符在此字符串中从指定位置后第一次出现处的索引。
   int indexOf(String str,int fromIndex):
          返回指定字符串在此字符串中从指定位置后第一次出现处的索引。
   int lastIndexOf(int ch, int fromIndex)
          返回指定字符在此字符串中最后一次出现处的索引,从指定的索引处开始进行反向搜索。
   int lastIndexOf(String str)
          返回指定子字符串在此字符串中最右边出现处的索引。
   int lastIndexOf(String str, int fromIndex)
           返回指定子字符串在此字符串中最后一次出现处的索引,从指定的索引开始反向搜索。
   String substring(int start):
           从指定位置开始截取字符串,默认到末尾。
   String substring(int start,int end):
           从指定位置开始到指定位置结束截取字符串。

public static void main(String[] args) {
                // String 中的常用方法介绍
                /*
                 * int indexOf(int ch):
                 *    返回指定字符在此字符串中第一次出现处的索引。
                 * int indexOf(int ch,int fromIndex):
                 *     返回指定字符在此字符串中从指定位置后第一次出现处的索引。
                 * int indexOf(String str,int fromIndex):
                 *     返回指定字符串在此字符串中从指定位置后第一次出现处的索引。
                 * int lastIndexOf(int ch, int fromIndex)
                 *     返回指定字符在此字符串中最后一次出现处的索引,从指定的索引处开始进行反向搜索。
                 * int lastIndexOf(String str)
                 *     返回指定子字符串在此字符串中最右边出现处的索引。
                 * int lastIndexOf(String str, int fromIndex)
                 *     返回指定子字符串在此字符串中最后一次出现处的索引,从指定的索引开始反向搜索。
                 * String substring(int start):
                 *     从指定位置开始截取字符串,默认到末尾。
                 * String substring(int start,int end):
                 *     从指定位置开始到指定位置结束截取字符串。
                 */
                String s1 = "If you never abandon,I will in life and death";
                /*
                 *  int indexOf(int ch):
                 *    返回指定字符在此字符串中第一次出现处的索引。
                 *    If you never abandon,I will in life and death
                 *    0123456789     ... ....                                       44
                 */
                //注意:若检索不到返回的是-1
                System.out.println(s1.indexOf("your"));//输出的结果是:-1
                //从左到右,还是以0开始数 ,返回第一个出现n这个字母的位置,很明显是第7个
                System.out.println(s1.indexOf("n"));//输出的结果是:7
                //从左到右,还是以0开始数 ,返回第一个出现never这个单词的位置,所以返回的是这个单词首个字母的位置
                System.out.println(s1.indexOf("never"));//输出的结果是:7
                //从左到右,还是以0开始数 ,返回第一个出现e这个字母的位置,认真看一下,never有两个e,但很明显返回的是第一次出现的那个,很明显是第8个
                System.out.println(s1.indexOf("e"));//输出的结果是:8
                //从左到右,还是以0开始数 ,返回第一个出现er这个单词的位置,认真看一下,never有两个e,但要检索的是er这个单词,所以查找的是后面的那个e,很明显是第10个
                System.out.println(s1.indexOf("er"));//输出的结果是:10
               
                /*
                 * int indexOf(int ch,int fromIndex):
                 *    返回指定字符在此字符串中从指定位置后第一次出现处的索引。
                 */
                /*
                 * 对比上面的:System.out.println(s1.indexOf("e"));//输出的结果是:8
                 *   你会发现:下面的这个程序是从第9个位置开始检索,所以找的是第二个e
                 *   
                 */
               
                System.out.println(s1.indexOf("e",9));//输出的结果是:10
                //注意:若检索不到返回的是-1
                System.out.println(s1.indexOf("your",9));//输出的结果是:-1
               
                /*
                 * indexOf(int ch,int fromIndex):
                 *   //注意:若检索不到返回的是-1
                 */
                System.out.println(s1.indexOf('e',9));//输出的结果是:10
               
                /*
                 * 先写这么多,迟点再更新

                             本人写得比较匆忙,再加上自己水平有限,可能会有不少的错误,欢迎各位指正
                 */
               
        }


评分

参与人数 3黑马币 +15 收起 理由
itboy_0 + 5 刚学String类
heima_01 + 5 很给力!
zhengDF + 5 写得很详细

查看全部评分

11 个回复

倒序浏览
太多太杂,能够全部看下去的,我必须服.   把重点归纳成几点,会更好.
回复 使用道具 举报
Jerry007 发表于 2016-10-30 13:48
太多太杂,能够全部看下去的,我必须服.   把重点归纳成几点,会更好.

这个我都是一个一个方法的写的
回复 使用道具 举报
Jerry007 发表于 2016-10-30 13:48
太多太杂,能够全部看下去的,我必须服.   把重点归纳成几点,会更好.

谢谢指点,没发过什么技术贴,没什么经验!
回复 使用道具 举报 1 0
Garron 发表于 2016-10-30 13:50
这个我都是一个一个方法的写的

我知道啊,但是看着太多,很费力,这几个方法并不难,也不难理解,所以整理成几行重点就行了
回复 使用道具 举报
Garron 发表于 2016-10-30 13:52
谢谢指点,没发过什么技术贴,没什么经验!

技术贴最好是能把你在学习中遇到的想不通的问题发出来,问问论坛大神或其他小伙伴的意见,说不定就收到启发了;
再者是总结一些平时学习的时候大伙可能会忽视或者容易掉坑的知识点,发到论坛也是极好的;
另外就是分享资源了;

没事,慢慢你就懂了,如果没有一些大家想去了解的内容的话,很容易没人回复你的,到时候就会比较打击新人的积极了.
回复 使用道具 举报
回复 使用道具 举报
zhengDF 初级黑马 2016-10-30 18:24:13
8#
回复 使用道具 举报
新手先收藏,,,,,,
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
膜拜中....代码太多会眼花~~~
回复 使用道具 举报
内容写得挺详细的!!
回复 使用道具 举报
总结的很详细     点个赞
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马