Java基础--StringAPI

一 创建字符串

在Java语言中将字符串作为对象来管理,因此可以向创建其他类对象一样来创建字符串。

 

创建字符串

  1. 用一个数组创建String对象: String(char a[]);

例如: char a [] = {‘g’,’o’,’o’,’d’};

       String  str = new String(a);

等价于 String str = new String(“good”);

  1. 提取字符数组中一部分来创建String对象:String (char a[], int offset, int length),其中offset代表提取数组的开始位置,length代表生成的字符串的长度。

例如: char a[] = {‘s’,’t’,’u’,’d’,’e’,’n’,’t’};

       String str = new String(a,2,4);

等价于 String str = new String(“uden”);

  1. 通过字符串常量的引用赋值给字符串一个变量;

例如: String str = “12131”;

 

二 StringAPI操作

// 定义一个字符串变量;
        String  str = "DADSqewqe123fdss";
        
      /*
       * StringAPI说明
       */
        
     /*
      *  1. length(),获取字符串长度;且注意:此方法返回的长度包括字符串中的空格;
      */
        int length = str.length();
        System.out.println("str字符串的长度是"+length);
        // 输出结果: str字符串的长度是16
        
     /*
      *  2. indexOf(String s),该方法用于参数字符串s,在指定的字符串首次出现的位置;当调用该方法时,
      *     会从当前字符串开始位置进行搜索,找到,返回下标,否则,返回-1.
      */
        int index = str.indexOf("q");
        System.out.println("字符串q首次出现的位置是:"+index);
        // 输出结果:字符串q首次出现的位置是:4
        
     /*
      * 3. lastIndexOf(String s),该方法用于参数字符串s,在指定的字符串最后一次出现的位置;当调用该方法时,
      *    会从当前字符串开始位置进行搜索,找到,返回下标,否则,返回-1.
      */
        int lastIndex = str.indexOf("e");
        System.out.println("字符串e最后一次出现的位置是:"+lastIndex);
        // 输出结果:字符串e最后一次出现的位置是:5
        
     /*
      *  4. charAt(int index), 该方法用于返回当前字符串指定索引的字符。
      */
        char c = str.charAt(3);
        System.out.println("当前字符串索引为3时对应的字符是:"+c);
        // 输出结果:当前字符串索引为3时对应的字符是:S
        
     /*
      *  5.substring(int beginIndex),该方法表示从指定索引位置开始,直到截取到字符串结尾的子字符串。
      *    beginIndex 表示指定开始的索引位置。
      */
        String bstr = str.substring(6);
        System.out.println("截取的字符串是"+bstr);
        // 输出结果:截取的字符串是wqe123fdss
        
     /*
      * 6.substring(int beginIndex,int endIndex),该方法表示从指定索引位置开始,直到截取到指定索引位置结束的子字符串。
      *   beginIndex 表示开始索引,endIndex 表示截至索引。
      */
        String bestr = str.substring(7, 13);
        System.out.println("截取的字符串是"+bestr);
        // 输出结果:截取的字符串是qe123f
        
    /*
     *   7. trim(),该方法用于去除字符串中的前导空格和尾部空格;
     */
        String str1 = " dsewerwewe ";
        String str2 = str1.trim();
        System.out.println("去除空格前的字符串长度是"+str1.length());
        System.out.println("去除空格后的字符串长度是"+str2.length());
        // 输出结果:去除空格前的字符串长度是12   
        //        去除空格后的字符串长度是10
        
    /*
     *  8. replace(char oldChar,char newChar); 该方法用于替换当前字符串中的字符或字符串。 oldChar 表示旧的字符或字符串 ;
     *     newChar 表示新的字符或字符串;该方法返回新的字符串,但当oldChar在原有字符串中不存在时,则返回原字符串。
     */  
        String newStr = str.replace('e', 'c');
        System.out.println("替换前的字符串是:"+str);
        System.out.println("替换后的字符串是:"+newStr);
    //    输出结果:替换前的字符串是:DADSqewqe123fdss
    //                       替换后的字符串是:DADSqcwqc123fdss
        
    /*
     * 9. startsWith()和endsWith(); 分别用于判断字符串是否以指定内容开始或结束,返回boolean;
     */
        boolean b = str.startsWith("DA");
        boolean b1 = str.endsWith("jj");
        System.out.println("字符串str是否以DA开始的"+b);
        System.out.println("字符串str是否以jj结束的"+b1);
    //  输出结果:字符串str是否以DA开始的true
    //         字符串str是否以jj结束的false
        
    /*
     * 10. 判断两个字符串是否相等;
     *     注意:判断两个字符串是否相等,不能用比较运算符  ==, 因为比较运算符比较的是两个字符串的地址是否相同,即使两个字符串的内容相同,但存储的内存地址不同,同样会返回false;
     *     判断两个字符串是否相等,要使用equals()和equalsIgnoreCase();他们之间的区别是:
     *     区别:  equals在比较时是区分大小写的,而equalsIgnoreCase()在比较时是忽略大小写的。
     *     
     */
        String eq1str = "ASDfg";
        String eq2str = "ASDfg";
        String eq3str = "asdFG";
        boolean eqb1 = eq1str.equals(eq2str);
        boolean eqb2 = eq1str.equals(eq3str);
        boolean eqb3 = eq1str.equalsIgnoreCase(eq2str);
        boolean eqb4 = eq1str.equalsIgnoreCase(eq3str);
        System.out.println("使用equals方法判断字符串eq1str与字符串eq2str是否相等"+eqb1);
        System.out.println("使用equals方法判断字符串eq1str与字符串eq3str是否相等"+eqb2);
        System.out.println("---------------------------------");
        System.out.println("使用equalsIgnoreCase方法判断字符串eq1str与字符串eq2str是否相等"+eqb3);
        System.out.println("使用equalsIgnoreCase方法判断字符串eq1str与字符串eq3str是否相等"+eqb4);
        /*
         * 输出结果:
         * 使用equals方法判断字符串eq1str与字符串eq2str是否相等true
                使用equals方法判断字符串eq1str与字符串eq3str是否相等false
           ---------------------------------
                              使用equalsIgnoreCase方法判断字符串eq1str与字符串eq2str是否相等true
                              使用equalsIgnoreCase方法判断字符串eq1str与字符串eq3str是否相等true
         */
        
        
    /*
     * 11. cpmpareTo(); 该方法用于按照字典顺序比较两个字符串,该比较基于字符串中每个字符的unicode值,按照字典顺序将此S听对象表示的字符序列
     *     与参数字符串所表示的字符序列进行比较。如果按字典顺序此String对象位于参数字符串之前,则比较结果为一个负整数,如果按字典顺序此String对
     *     象位于参数字符串之后,则返回一个正整数,如果两个字符串相等,则返回0.
     *     注意: compareTo()只有在equals方法返回true时,才返回0.
     */
        String  c1str = "acd";
        String  c2str = "bca";
        String  c3str = "abc";
        String  c4str = "acb";
        System.out.println("c1str compareTo c2str 返回"+c1str.compareTo(c2str));
        System.out.println("c1str compareTo c3str 返回"+c1str.compareTo(c3str));
        System.out.println("c1str compareTo c4str 返回"+c1str.compareTo(c4str));
        /*
         * 输出结果:
         * c1str compareTo c2str 返回-1
           c1str compareTo c3str 返回1
           c1str compareTo c4str 返回2
                              根据返回结果可以看出,该方法是从左到右依次进行比较的。
         */
        
    /*
     *  12.字母大小写转换
     *     toLowerCase();将字符串中所有大写字符转换成小写
     *     toUpperCase();将字符串中所有小写字符转换成大写
     *     注意:使用toLowerCase(),toUpperCase()转换时,数字与非字符不受影响。
     */
        String toStr = "abc DEF";
        String to1Str = toStr.toLowerCase();
        String to2Str = toStr.toUpperCase();
        System.out.println("字符串toStr调用toLowerCase()转换后得"+to1Str);
        System.out.println("字符串toStr调用toUpperCase()转换后得"+to2Str);
        /*
         * 输出结果:
         * 字符串toStr调用toLowerCase()转换后得abc def
                 字符串toStr调用toUpperCase()转换后得ABC DEF
         */
        
        
        /*
         * 13.split();该方法用于对字符串按指定分割字符或分割字符串进行分割,并将分割后的结果存放到字符串数组中。
         *    字符串分割有两种分割方式:
         *    1.split(String sign); 根据给定的分割符进行分割,sign是给定的分割符,也可以是正则表达式。
         *      注意:没有统一的对字符串分割的分割符,如果想定义多个分割符,可以使用符号"|",例如: ",|=",表示分割符分别是","和"=".
         *    2.split(String sign,int limit); 根据给定的分割符对字符串进行拆分,并限定拆分的次数。
         *      sign 指定的分割符,   limit 要拆分的次数。
         */
        String ip = "192.168.0.1";
        String ip1s[] = ip.split("\\.");
        String ip2s[] = ip.split("\\.", 2);
        System.out.println("ip 的原值为 : ["+ip+"]");
        System.out.print("全部拆分的结果为:");
        for (String s : ip1s) {
            System.out.print("["+s+"]");
        }
        System.out.println();
        System.out.print("拆分两次的结果为:");
        for (String s : ip2s) {
            System.out.print("["+s+"]");
        }
        /*
         * 输出结果:ip 的原值为 : [192.168.0.1]
                    全部拆分的结果为:[192][168][0][1]
                     拆分两次的结果为:[192][168.0.1]
         */
        
        
        /*
         * 14. contains(),该方法用于判断一个字符串中是否包含另一个字符串
         */
        String s = "DAD";
        boolean bc = str.contains(s);
        System.out.println("字符串str中是否包含字符串s:"+bc);
        // 输出结果:
        
        
        /*
         * 15.getBytes();该方法用于将字符串转换成字节数组;
         */
           byte[] strs = str.getBytes();
           for (byte d : strs) {
            System.out.print(d+",");
        }
        System.out.println();
        // 输出结果:68,65,68,83,113,101,119,113,101,49,50,51,102,100,115,115,
        
           /*
             * 16.toCharArray;该方法用于将字符串转换成字节数组;
             */
               char[] chars = str.toCharArray();
              for (char cr : chars) {
                System.out.print(cr+",");
            }
            // 输出结果:D,A,D,S,q,e,w,q,e,1,2,3,f,d,s,s,
        
        /*
         * 17 . isEmpty();判断字符串是否为空;
         */

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值