JAvaベース-子供でも読めるstringAPI

9057 ワード

はじめに
この文章は初心者向けに文字列の使用を学ぶ文章で、以前の基礎シリーズの文章で文字列を使ったことがありますが、どのように使うかは詳しく説明されていません.この文章はStringのAPI操作を大きく解くことになります.
にこうぞうほう
Stringの構造方法は比較的に多く、知識追跡者はいくつかの重点構造方法を選んで説明する.Stringは可変の文字列であり、StringAPIを使用するたびに新しい文字列オブジェクトが生成されます.底辺の内容を詳しく理解するには、知識追跡者は文末にリンクを与え、初心者はスキップします.
2.1 String()
String()の構築方法は、空の文字列オブジェクトを作成することです.
    public static void main(String[] args) {
        String s = new String();
        //       
        System.out.println(s);
        //     
        s = "     ";
        //      
        System.out.println(s);
    }

2.2 String(String original)
パラメータによって与えられた文字列から、新しい文字列をコピーして生成します.
  public static void main(String[] args) {
        String s = new String("     ");
        //      
        System.out.println(s);
    }

2.3 String(byte[] bytes)
プラットフォームのデフォルトの文字セットを使用して復号し、1バイトの配列を文字列に変換します.
   public static void main(String[] args) {
       //   
       String str = new String("     ");
       //       
       byte[] bytes = str.getBytes();
       //        
       String s = new String(bytes);
       //      
       System.out.println(s);
   }

2.4 String(byte[] bytes, String charsetName)
指定した復号方式を使用して、文字列を生成します.String(byte[]bytes,Charset charset)メソッドはこのメソッドと機能が悪くなく、文字セットを指定する際にCharsetオブジェクトを使用して指定されます.
    public static void main(String[] args) throws UnsupportedEncodingException {
        //   
        String str = new String("     ");
        //       
        byte[] bytes = str.getBytes();
        //        
        String s = new String(bytes,"UTF-8");
        //      
        System.out.println(s);
    }

2.5 String(char[] value)
文字配列を新しい文字列に生成します.
    public static void main(String[] args) {
        //       
        char[] chars = {'3', '4', '5'};
        String s = new String(chars);
        // 345
        System.out.println(s);
    }

2.6 String(StringBuilder builder)
StringBuilderは可変文字列ですが、スレッドは安全ではありません.String(StringBuilder builder)を使用すると、可変文字列がString可変文字列に変わります.
    public static void main(String[] args) {
        //         
        StringBuilder builder = new StringBuilder("     ");
        String s = new String(builder);
        //      
        System.out.println(s);
    }

2.7 String(StringBuffer buffer)
StringBufferは可変文字列ですが、スレッドは安全で、String(StringBuffer builder)を使用すると可変文字列がString可変文字列に変換されます.
    public static void main(String[] args) {
        StringBuffer buffer  = new StringBuffer("     ");
        String s = new String(buffer);
        //      
        System.out.println(s);
    }

さんもじれつせつぞく
文字列接合とは、複数の文字列を新しい文字列に接合することを意味する.
3.1使用+接合
+を使用して接合すると、他の基本データ型が新しい文字列に変換されます.次の例では、文字列変数と整数変数の結合を使用して新しい文字列を生成します.残りのタイプは似ています.
    public static void main(String[] args) {
        String str1 = "     ";
        String str2 = "    ";
        //         
        String s1 = str1 + str2;
        //            
        int i = 666;
        String s2 = str1 + i;
        //          
        System.out.println(s1);
        //      666
        System.out.println(s2);

    }

3.2 String concat(String str)
String concat(String str)を使用すると、複数の文字列を1つの文字列に結合できます.
    public static void main(String[] args) {
        String str1 = "     ";
        String str2 = "    ";
        String s = str1.concat(str2);
        //          
        System.out.println(s);
    }

四文字列クエリー
文字列の位置のデフォルトは0から計算されます.クエリ文字列の戻り値はintタイプであり、サブストリングの位置を返します.LastIndexOfシリーズAPIはindexOfシリーズAPIと類似しており、違いはindexOfが最初の文字列文字列を検索したことであり、lastIndexOfは最後の文字列を検索した位置である.正しく返すと文字列の文字列の位置が現れ、エラーは一般的に-1を返す.
4.1 indexOf(int ch)
最初の文字が表示された場所を順次クエリーします.
   public static void main(String[] args) {
        String str = "123123123";
        int indexOf = str.indexOf('2');
        // 1
        System.out.println(indexOf);
    }

4.2 indexOf(String str)
最初のサブストリングが表示される場所を順次クエリーします.
    public static void main(String[] args) {
        String str = "123123123";
        int indexOf = str.indexOf("123");
        // 0
        System.out.println(indexOf);
    }

4.3 indexOf(int ch, int fromIndex)
指定した場所から、最初に表示された文字を順番にクエリーします.第1グループの123の位置は012である.第2のグループ123の位置は345である.第3グループ123の位置は678である.明らかに2位置から文字「2」が検索され、2番目のグループ123から文字「2」が検索され、2番目のグループ2文字の位置は4である.
    public static void main(String[] args) {
        String str = "123123123";
        int indexOf = str.indexOf('2',2);
        // 4
        System.out.println(indexOf);
    }

4.4 indexOf(String str, int fromIndex)
指定した場所から、最初にサブストリングが表示された場所を順番にクエリーします.文字列位置1から文字列123を検索する位置、すなわち第2のグループ123の開始位置、すなわち3である.
     public static void main(String[] args) {
         String str = "123123123";
         int indexOf = str.indexOf("123",1);
         // 3
         System.out.println(indexOf);
     }

5文字列には
contains(CharSequence s)は、文字列に文字列シーケンスが含まれているかどうかを判定し、trueが含まれている場合、falseを返します.
    public static void main(String[] args) {
        String str = "     ";
        boolean p1 = str.contains("   ");
        // true
        System.out.println(p1);
        boolean p2 = str.contains("33");
        // false
        System.out.println(p2);
    }

六文字列比較{{ろくもじれつ:ひかく}}
6.1 compareTo(String anotherString)
2つの文字列の比較サイズは、各文字のUnicode値に基づいて文字列で比較され、現在のものは後者より大きい正数を返し、前者は後者が0を返すことに等しい.前者は後者より小さく負の数を返す.compareToIgnoreCase(String str)とcompareTo(String anotherString)の違いは、文字列内の文字の大文字と小文字が無視され、その他は同じである.
    public static void main(String[] args) {
        String str1 = "a";
        String str2 = "b";
        String str3 = "A";
        int compare1 = str1.compareTo(str2);
        // -1
        System.out.println(compare1);
        int compare2 = str1.compareTo(str3);
        // 32
        System.out.println(compare2);
        int compare3 = str2.compareTo(str3);
        // 33
        System.out.println(compare3);
        int compare4 = str2.compareTo(str2);
        // 0
        System.out.println(compare4);
    }

6.2 equals(Object anObject)
equals(Object anObject)は、比較文字列の内容が等しいかどうかである.equalsIgnoreCase(String anotherString)とequals(Object anObject)は比較時に大文字と小文字を無視し、残りは同じである.
    public static void main(String[] args) {
        String str1 = "   ";
        String str2 = "   ";
        String str3 = "   ";
        boolean equals1 = str1.equals(str2);
        // true
        System.out.println(equals1);
        boolean equals2 = str1.equals(str3);
        // false
        System.out.println(equals2);
    }

7文字列の一致
文字列マッチングは正規表現に基づいてマッチングされ、完全マッチングがtrueを返す場合、falseではありません.初心者はスキップして、これから深く勉強することができます.
    public static void main(String[] args) {
        String str = "123456789";
        boolean matches = str.matches("[0-9]*");
        // true
        System.out.println(matches);
    }

八字文字列切り取り
8.1 substring(int beginIndex)
substring(int beginIndex)は、指定された位置から文字列の末尾まで文字列を切り取る.次の例では、 の位置は2であり、2の位置(2を含む)から文字列を と切り取る.
    public static void main(String[] args) {
        String str = "     ";
        String substring = str.substring(2);
        //    
        System.out.println(substring);
    }

8.2substring(int beginIndex, int endIndex)
substring(int beginIndex,int endIndex)、beginIndex位置(含む)からendIndex位置(含まない)までの文字列を切り取る.beginIndexからendIndex-1までの位置を切り取る文字列も好きです.

    public static void main(String[] args) {
        String str = "     ";
        String substring = str.substring(2, 3);
        //  
        System.out.println(substring);
    }

9文字列はシリーズを表します
文字列代表シリーズはString代表の基本データ型である.すなわち、基本データ型はvalueOf法により文字列型に変換できる.文字列のタイプは万能です.
方法
代表的な意味
valueOf(boolean b)
ブール型が表す文字列
valueOf(char c)
文字タイプが表す文字列
valueOf(char[] data)
文字配列タイプが表す文字列
valueOf(char[] data, int offset, int count)
サブ文字配列が表す文字列
valueOf(double d)
デュアル精度文字列
valueOf(float f)
単精度タイプが表す文字列
valueOf(int i)
整数の文字列
valueOf(long l)
ロング整数文字列
valueOf(Object obj)
オブジェクトが表す文字列
使用例:
    public static void main(String[] args) {
        double d = 123d;
        String s = String.valueOf(d);
        // 123.0
        System.out.println(s);
    }

十参考文献
他にもString APIの読者は公式ドキュメントを参照して自分で研究することができ、ほとんどのよく使われているシリーズのAPIはすでに述べている.
java8doc: https://docs.oracle.com/javase/8/docs/api/StringbufferとStringbuildの違い:https://blog.csdn.net/youku1327/article/details/102640856 String深く研究する