• 黑马程序员JAVA基础String 类(上)


      

    1.概述

      String 类适用于描述字符串事务。提供了多种对字符串进行操作的方法。

      > 字符串的最大的特点:一旦被初始化就不能被改变。

    2.常见的操作方法:

      2.1 获取: 

     1 public class StringText1 {
     2     public static void main(String srgs[])
     3     { 
     4 //        str 是一个类类型变量,"abc"是一个对象。
     5         String str = "hello java!" ; 
     6 //         str 和 str1 的区别在于:str 内存中有一个对象,而str1 内存中有两个对象。
     7         String str1 = new String("hello java!") ;
     8          
     9         sop(str.length()) ;
    10         for(int i = 0 ; i < str.length() ; i ++ )
    11             sop(str.charAt(i))  ; 
    12         sop(str.indexOf('a')) ;
    13         sop(str.indexOf('a',7)) ;
    14 
    15         sop(str.indexOf("java")) ;
    16         sop(str.lastIndexOf('a')) ; 
    17     }
    18 //    打印函数:
    19     public static void sop(Object obj) 
    20     {
    21         System.out.println(obj); 
    22     }
    23 }

        1、字符串中包含的字符数,即字符串的长度; int length() ;

        注意:String 类的 length()  是一个方法; 而 char 类型数组调用的length , 是属性。

        2、 根据位置获取位置上某个字符。 char charAt(int index) ; index 是下标。

        3 、根据字符获取该字符在字符串中的位置。

          int indexOf(int ch) ; 返回的是 ch 在字符串中第一次出现的位置。其中 ch 是字符的ASCII 码。 

          int indexOf(int ch , int fromIndex) ; 从fromIndex 指定位置开始,在字符串中第一次出现的位置.

          int indexOf(String st) ; 返回的是 st 在字符串中第一次出现的位置。

          int indexOf(String st , int fromIndex) ; 从fromIndex 指定位置开始,在字符串中第一次出现的位置.

          int lastIndexOf(int ch) ; 返回指定字符在此字符串中最后一次出现处的索引。 

      2.2 判断:

     1 public class String2 {
     2     public static void main(String args[])
     3     {
     4         String str1 = "hello java!" ; 
     5         String str2 = new String("hello java!") ;  
     6         
     7         System.out.println(str1.equals(str2));  
     8         System.out.println(str1 == str2);
     9     } 
    10 }

        上面代码第7行和第8行打印结果是不一样的。用equals 方法判断的结果是true , 因为 String 类 重写了Object类的equals 方法,是equals 方法有独特的判断方法。

        判断常用的方法有:

        1、判断字符串中是否包含某一个字串。

          boolean contains(CharSequence cs) ; 

        2、字符串中是否为空:

          boolean isEmpty() ; 其原理就是判断字符长度是否为0。

        3、判断字符串是否以指定类容开头:

          boolean startsWith(String str) ; 

        4、判断字符串是否以指定类容结尾:

          boolean endsWith(String cs) ;

        5、判断字符串内容是否相等:

          boolean equals(Obeject obj) ;    

        6、 判断内容是否相同,并忽略大小写。

          boolean equalsIgnoreCase(String str)

      2.3 转换

     1 public class String3 {
     2     public static void main(String args[])
     3     {
     4         char[] ch = {'h','e' ,'l' ,'l' ,'o' ,' ' , 'j' , 'a' , 'v' ,'a'} ;
     5 //        构造函数转换:
     6 //        将字符数组转换成字符串:
     7         String str1 = new String (ch) ; 
     8         System.out.println(str1);
     9 //        从ch[] 下标 6开始,后的4个字符 ,转换成字符串。
    10         String str2 = new String (ch,6,4) ;
    11         System.out.println(str2);
    12         
    13 //        静态方法:
    14 //        将字符数组转换成字符串:
    15         String str3 = String.copyValueOf(ch) ; 
    16         System.out.println(str3); 
    17 //        从ch[] 下标 6开始,后的4个字符 ,转换成字符串。
    18         String str4 = String.copyValueOf(ch,0,5) ;
    19         System.out.println(str4);
    20         
    21         String str = "hello java" ; 
    22 //        将字符串转换成字符数组;
    23         char[] ch1 = str.toCharArray() ;
    24         for(int i = 0 ; i < ch1.length ; i ++)
    25             System.out.print("'"+ch1[i] +"'");
    26         System.out.println();   
    27     }
    28 }

        1、将字符数组转换成字符串:

          构造方法:String(char[] ch)

               String(char[] ch , int offset , int count ) ; 将字符数组中的一部分转成字符串。

               其中:offset 参数是子数组第一个字符的索引;count 参数指定子数组的长度。如果从offset 后面的字符数小于count 则会异常。

               注意:该子数组的内容已被复制;后续对字符数组的修改不会影响新创建的字符串。

        2、将字符串转换成字符数组。

          char[] toCharArray() ; 

        3、将字节数转成字符串。

          构造方法:String(byte[] by) ;

               String(byte[] by , int offset , int count) ;

        4、将字符串转成字节数组。

          byte[] getByte() ;

        5、将基本数据类型转换成字符串。

          static String valueOf(基本数据类型) .........

      2.4 替换和切割

        String replace(char oldChar , char newChar) ; 返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。

        String[] split(String regex) ; 根据给定正则表达式的匹配拆分此字符串。

    public class String4 {
        public static void main(String args[])
        {
            String str = "hello,java,String" ; 
            System.out.println(str); 
    //        替换字符
            String str1 = str.replace(',', ' ') ;
            System.out.println(str1);
    //        切割
            String[] str2 = str.split(",") ; 
            for(int i = 0 ; i < str2.length  ; i++ ) 
                System.out.println(str2[i]); 
        }
    }

      2.5.子串、转换,去除空格和比较。

        1、子串:获取字符串中的一部分。

          String substring(int begin) ; 从指定位置开始到结尾。如果角标不存在,或出现字符串角标异常。

          String substring(int begin , int end) ;  包含开头,不包含尾。

        2、将字符串大小写转换:

          String toUpperCase() ; 将字符串转成大写。

          String toLowerCase() ; 将字符串转成小写。

        3、将字符串两端的多个空格去除: String trim() ; 

        4、对两个字符串进行自然顺序的比较。 int compareTo(String str) ; 当另一个字符串大于该字符串时,返回负数;相等,则返回0;否则返回正数。

     1 public class String5 {
     2     public static void main(String args[])
     3     {
     4         String str = "hello java " ;
     5 //        获取字符串中的一部分:
     6         System.out.println(str.substring(0, 6));
     7         System.out.println(str.toUpperCase());
     8         String str1 = "             HELLO WORLD      " ;
     9         System.out.println(str1.toLowerCase());
    10 //        除去字符串两端的多个空格:
    11         System.out.println(str1.trim()); 
    12         String str2 = "hello world " ; 
    13 //        对比两个字符串进行自然顺序的比较
    14         System.out.println(str.compareTo(str2));
    15         System.out.println('j'- 'w');
    16     }
    17 }

        在第14行和第15行打印的结果是一样的。

        

  • 相关阅读:
    fatal: 'origin' does not appear to be a git repository
    Mac cpu过高问题分析及解决
    Java8新特性之日期和时间
    Allure自动化测试报告之修改allure测试报告logo
    Allure自动化测试报告之修改allure测试报告名称
    jmeter压测过程中报java.lang.NoClassDefFoundError: org/bouncycastle/jce/provider/BouncyCastleProvider
    java.security.InvalidKeyException: Illegal key size or default parameters
    scanf中的%[^ ]%*c格式
    fork,vfork和clone底层实现
    僵尸进程的产生原因和避免方法
  • 原文地址:https://www.cnblogs.com/jbelial/p/2969410.html
Copyright © 2020-2023  润新知