java进阶--常用API

一、Scanner 类

  1、位于Java.util包中

  2、作用:用于接收键盘录入数据

  3、格式:Scanner sc = new Scanner(System.in)

  4、常用方法:hasNextXxx():用于比较输入类型是否相匹配

          nextXxx():用于获取数据

二、String类

  1、位于Java.lang包中

  2、字符串:就是多个字符组成的一串数据,也可以看成一个字符数组;

    API:A:字符串面值 ”abc“,也可以看成一个字符串对象;

        B:字符串是常量,一旦被赋值,不能被改变

  3、 构造方法:   public String () 空参构造

           public String (byte [] bytes) --把字节数组转成字符串

           public String (char [] chars) --把字符数组转成字符串

           public String (byte [] bytes , int index ,int length) --把字节数组的一部分转成字符串

           public String (char [] chars , int index,int count) --把字符数组的一部分转成字符串

           public String (String original) --把字符串常量转成字符串

  4、常用方法:分成三大块

    A:Striing类的判断功能

      Boolean  equals(Obiect obj)--比较字符串中内容是否相等(区分大小写)

      Boolean  equalsIngoreCase(String str)--比较字符串内容是否相等(不区分大小写)

      boolean   contains(String str) --判断大的字符串中是否包含小的字符串

      boolean  startsWith(String str) --判断字符串是否以指定字符串开头

      boolean endsWith(String str)--判断字符串是否以指定字符串结尾

      Boolean isEmpty() --判断字符串是否为空(内容为空)

        注:String  str = "";--表示为内容为空即字符串为空

          String str  = null;--表示对象为空,无法调用方法。

    B:String类的获取功能

      int length() --获取字符串的长度;

      char charAt(int index) --获取指定索引处的字符

      int indexOf(int ch) --返回指定字符在此字符串中第一次出现位置的索引

      int indexOf(String str) --返回指定字符串在此字符串中第一次出现位置的索引(首字符)

      int indexOf(int ch , int formIndex) --返回指定字符在此字符串中指定位置后首次出现的位置的索引

      int indexOf(String str , int formIndex) --返回指定字符串在此字符串中指定位置后首次出现的位置的索引

      String substring(int start) --从指定位置开始截取字符串

      String substring(int start , int end)--截取指定开始位置到指定结束位置的字符串(包含开始位置的字符,不包含结束位置的字符)

    C:String类的转换功能

      byte []  getBytes() -- 把字符串转成字节数组

      char[] toCharArray() --把字符串转成字符数组

      static String valueof( char [] chs)--把字符数组转成字符串

      static String valueof( int i)--把int型数据转成字符串 

        注:此方法可以将任意类型数据转成字符串

      String toLowCase() --将字符串全部转成小写

      String toUpperCase() --将字符串全部转成大写

      String concat(String str)--拼接两字符串

    D:String类的其他功能

      替换功能:

        String replace(char old , char new) -- 新的字符替换字符串中所有指定字符

        String replace(String old, String new) --新的字符串替换字符串中指定的字符串

      去除前后两端空格

        String trim()

      按字典顺序比较两个字符串

        int compareTo(String str) 区分大小写

        int compareToIngoreCase(String str) 不区分大小写

        注:此处比较逻辑为:字符串会自动转成字符数组,获取两个字符数组长度,取最小者作为循环比较次数,从第一位开始比较若遇到第一个字符不同即输出前字符的ascall码值 - 后者字符的ascall码值的差数,若没有不同,即输出前字长度 - 后者长度之差。

三、StringBuffer类

  1、位于Java.lang包中

  2、StringBuffer是线程安全的可变字符串

    格式:StringBuffer sb = new StringBuffer();  --相当于一个有一定容量的水杯

  3、String和StringBuffer类的区别

    A:后者长度和内容可变,前者不可变

    B:使用后者做字符串拼接,可以不浪费资源

  4、构造方法

    public StringBuffer() --无参构造 该容量为默认容量16个字符

    public StringBuffer(int capacity) --指定容量的字符串缓冲区对象,该容量取当前传入的大小

    public StringBuffer(String str) --指定字符串内容的字符串缓冲区对象,该容量取当前字符串长度和默认容量之和

  5、常用方法

    public int length() --返回字符串的长度

    public int capacity() --返回当前字符串缓冲区对象的容量大小

    StringBuffer类的添加功能

      public StringBuffer append(String str) --该方法可以将任意类型的数据添加到字符串缓冲区里,并返回字符串缓冲区本身

      public StringBuffer insert(int offest, String str)--该方法在指定位置将任意类型的数据添加到字符串缓冲区里,并返回字符串缓冲区本身

      注:第一个方法是在末尾依次添加,第二个方法是指定位置添加,原有数据后移

      

      

   StringBuffer类的删除功能

     public StringBuffer deleteCharAt(int index) --删除指定位置的字符,并返回字符串缓冲区本身

     public StringBufffer delete(int start,int end) --删除从指定位置开始到指定位置结束的字符,并返回字符串缓冲区本身

      注:sb.delet(0,sb.length()) --清空字符串缓冲区内容

     

      

  StringBuffer类的替换功能

    public StringBuffer replace(int start , int end ,String str) --从指定开始到结束的字符串用str替换

  StringBuffer类的反转功能

    public StringBuffer reverse() 

  StringBuffer类的截取功能

    public String substring(int start)

    pulbic String substring(int start , int end)

    注:该方法返回的是String类型,字符串缓冲区本身不改变

  String类和StringBuffer类的转换

    String ---------------StringBuffer

    方法1:通过StrngBuffer的构造方法

      StringBuffer sb = new StringBuffer(String str);

    方法2:通过append()方法

      sb.append(String str);

    StringBuffer----------------String

    方法1:通过构造方法

      String s = new String(StringBuffer sb);

    方法2:通过toString()方法  --任何对象都可以通过此方法转换成字符串

      String s = sb.toString();

四、String、StringBuffer、和StringBuilder

  1、String、StringBuffer、和StringBuilder的区别

    A:String是内容长度都不可变的,StringBuffer和StringBuilder都是可变的

    B:StringBuffer是同步的,数据安全,效率低,StringBuilder是不同步的,数据不安全,效率高

    这些都是相对于多线程来说的,一般单线程用StringBuilder比较多。

  2、StringBuffer 和数组的区别

    二者都可以看作是一个容器, 装其他数据;

    StringBuffer的数据最终是一个字符串数据,而数组可以放置多种数据,但必须是同一种数据类型的。

  3、Sting和StringBuffer作为形式参数

    注意:String作为形成传递,效果跟基本类型作为参数一样。

实例实现

  1、数组拼接

    

  2、字符串反转

    

  3、判断字符串是否对称

    分析:只需要比较第一个和最后一个,第二个和倒数第二个,依次比较长度的1/2次;

        StringBuffer做法,将字符串添加到StringBuffer缓冲区,然后反转,再转成字符串,使用equals()方法比较;

 

posted @ 2019-04-17 23:09  慵懒的胖墩  阅读(253)  评论(0)    收藏  举报