JavaでString、StringBuilder、StringBuffer

7654 ワード

JAvaでクラスとオブジェクトを作成する方法
1.    ,             。
2.sun           ,          ,               。

Objectクラス:
Objectクラスはすべてのクラスの究極の親です.どのクラスもObjectクラスを継承します.
Objectクラスでよく使われる方法:
  • toString(); オブジェクトの文字列表示を返します.オブジェクトを記述する文字列を返します.TOStringを書き換えると、オブジェクトを直接出力すると、必要なフォーマットデータが出力されます.2.equals(Object obj)は、2つのオブジェクトのメモリアドレスを比較し、2つのオブジェクトが同じオブジェクトであるかどうかを判断するために使用されます.

  • 注意:===は、参照データ型を比較する場合に使用されます.比較するのは2つのオブジェクトのメモリアドレスです.equalsメソッドはデフォルトでも2つのオブジェクトのメモリアドレスを比較しますが、StringクラスではObjectのequalsメソッドが書き換えられています.メソッドの内部では文字列をワード配列に変換し、各文字が同じかどうかを比較し、異なるとflaseに戻ります.同じようにtrueを返します.したがって、2つの文字列の比較ではequalsメソッドが推奨されます.
    3.hashCode()は、そのオブジェクトのハッシュコード値を返します(ハッシュコードはオブジェクトのメモリアドレスと理解できます).
    JAvaの仕様:一般的にクラスのequalsメソッドを書き換え、hashCodeメソッドを書き換えます.
    JAvaはオープンソース....ソースコード公開...
    ソースコードの表示方法:
    1.   crt(mac Command) ,       
    2.                fn + F3
        ```
    
    Java toString    
    >Object     toString()  ,              。        String  ,           。       toString()          ,        。
    toString()           
    
    

    public class Person { String name; String address; int id;
    public Person(String name, String address, int id) {
        this.name = name;
        this.address = address;
        this.id = id;
    }
    
    ///   toString()   
    @Override
    public String toString() {
        return "name ==" + name + "address ==" + address + "id == " + id;
    }
    

    }
    ////personオブジェクトpublic static void main(String[]args){
        Person person = new Person("sey", "  ", 11111);
        System.out.println(person);
    }
    

    //toString()メソッドを書き換えた後、印刷結果:name=seyaddress==北京id==11111////toString()メソッドを書き換えず、印刷結果は:Person@15db9742
    
    Java toString()   Objective-C  description      ,  oc   description  ,      ,            
    
  • (NSString *)description { return [NSString stringWithFormat:@"name==%@, address==%@", self.name, self.address]; }
  • 
    - ###String :
    >String      ,        ,         String                        String   ,            
    
             :
    1.```String str2 = "string";``` 
    2.```String str3 = new String("string");```
    
                
    

    public static void main(String[] args) { String str1 = "string"; String str2 = "string"; String str3 = new String("string"); String str4 = new String("string");
        System.out.println("str1    str3?" + (str1 == str2));
        System.out.println("str2    str3?" + (str2 == str3));
        System.out.println("str3    str4?" + (str3 == str4));
        System.out.println("str1    str3?" + (str1.equals(str2)));
    }
    

    ////印刷結果/*str 1はstr 3に等しいか?true str 2はstr 3に等しいか?false str 3はstr 4に等しいか?false str 1はstr 3に等しいか?true*/
    
      (      Java           ):
               :```String str1 = "string";```          ,jvm    ```   ```  ```      ```            ,    ,              ,  ```      ```        ,     ```      ```      ,           。
               :      ```String str3 = new String("string");```          ,jvm    ```      ```            ,    ,    ```      ```       ,     ,     ```      ```          ,   ```      ```         ```   ``,    ```   ```             
    
      1: 
    ```String str = new String("string");```        
      : 2  ,  ```      ```    ,       1 , 2 。
    
      2:
    ```String str = ""; str = null ```
      ```str.isEmpty()``` true  flase
      :      ```java.lang.NullPointerException```
    
    -     String trim()    --           
    

    //trim()関数を自分で実装し、文字列の先頭と末尾のスペースpublic static String customTrim(String str){
        //             
        char[] arr = str.toCharArray(); 
        
        //       ,                ,                                 
        int startIndex = 0;
        int endIndex = arr.length - 1;
        for (int i = 0; i < arr.length; i++) {
            
            if (arr[startIndex] == ' ') {
                startIndex++;
            } else {
                break;
            }
            
            if (arr[endIndex] == ' ') {
                endIndex--;
            } else {
                break;
            }
        }
        
        //               
         return str.substring(startIndex, endIndex + 1);
    }
    

    //public static void main(String[]args){
        String string = "                 ";
        string = customTrim(string);
        System.out.println(string);
    }
    

    //印刷結果頭尾のスペースが取れました:今日はいい天気ですね
    
              
    
    //           
    public static String getFileName(String path) {
        
        //          \    ,  :  \    ,   \  ,    \\
        int index = path.lastIndexOf("/");
        
        //      
        return path.substring(index + 1);
        
    }
    

    public static void main(String[] args) {
        String path = "/Users/mofeini/Desktop/subcate.plist";
        String fileName = getFileName(path);
        System.out.println(fileName);
    }
    
    
             
    

    //反転文字列public static String InvertString(String string){
        //            ,      
        char[] arr = string.toCharArray();
        
        for (int startIndex = 0, endIndex = arr.length - 1; startIndex
    
                      
    

    //統計サブストリングが1つのストリングに現れる回数public static int getCount(String string,String subStr){
        int count= 0;  //           
        int fromIndex = 0;  //            ,       ,  fromIndex+=     
        
        //              ,       -1     
        while ((fromIndex = string.indexOf(subStr, fromIndex)) != -1) {
            count++;
            fromIndex += subStr.length();
        }
        
        return count;
    }
    
    
    String   :      ,          。
                 ,          (StringBuffer)
    
    - ###StringBuffer             。
    StringBuffer                    ,             16,             ,    1 +2
    
    StringBuffer     append()
    

    StringBuffer sBuffer = new StringBuffer(); sBuffer.append("11");
    
    
    StringBuffer         :
        
        String 
        
          
            append(boolean b)                    
            insert(int offset, boolean b)          ,        。 
    
          
            delete(int start, int end)                       。
            deleteCharAt(int index)                  。
        
        
          
        
            replace(int start, int end, String str)                       。
            reverse()              。  abc--->cba
            
            setCharAt(int index, char ch)                  。 
            substring(int start, int end)              。
            ensureCapacity(int minimumCapacity)    StringBuffer          。
            
          
            indexOf(String str, int fromIndex)                  ,           。
            lastIndexOf(String str) 
            
            capacity()            。 
            length() 
            
            charAt(int index) 
            toString()                    。
            
    
    StringBuffer   StringBuilder        :
        
           :
            1.            。
            2.            。
           :
            1. StringBuffer      ,      ,StringBuilder       ,     。
            2. StringBuffer jdk1.0    ,StringBuilder  jdk1.5      。
            
    StringBuilder StringBuffer ,        StringBuilder ,            ,         ,      。
                 ,StringBuilder>StringBuffer>String
    
     final    String StringBuffer    
    >   , final       ,       ,    ,                。
      , String     ,   string      ,       ,       ;
          StringBuffer  ,       append  ,     StringBuffer              ,           append      ,         。