當前位置: 首頁>>技術教程>>正文


Java中 concat()和+運算符之間的區別,最全麵的分析!

concat()方法

Java字符串concat()方法將一個字符串連接到另一個字符串的末尾。此方法返回一個字符串,並將傳遞給該方法的字符串的值附加到字符串的末尾。

例:

 // Java program to demonstrate 
// working of concat() method 
  
class Gfg { 
    public static void main(String args[]) 
    { 
        String s = "Gfg"; 
        s = s.concat("! is the best."); 
        System.out.println(s); 
    } 
} 

輸出:

Gfg! is the best.

+運算符

+運算符用於在兩側連接字符串。

例:

// Java program to demonstrate 
// working of concat() method 
  
class Gfg { 
    public static void main(String args[]) 
    { 
        String s1 = "Gfg"; 
        String s2 = "! is the best"; 
  
        String s3 = s1 + s2; 
  
        System.out.println(s3); 
    } 
} 

輸出:

Gfg! is the best.

盡管 concat()和+運算符都用於串聯字符串,但是它們之間存在一些區別:

  1. concat()方法和+運算符的參數數量:
    • CONCAT()方法僅接受一個參數字符串,並將其與其他字符串連接。
    • +運算符接受任意數量的參數並連接所有字符串。
    public class GFG { 
        public static void main(String[] args) 
        { 
            String s = "Geeks", t = "for", g = "geeks"; 
      
            System.out.println(s + t + g); 
            System.out.println(s.concat(t)); 
        } 
    } 

    輸出:

    Geeksforgeeks
    Geeksfor
    
  2. 參數類型:
    • strong-> concat()方法僅接受字符串參數,如果參數中指定了其他任何類型,則將引發錯誤。
    • +運算符接受任何類型並轉​​換為字符串類型,然後將字符串連接起來。
  3. concat()方法引發java.lang.NullPointer異常
    • concat()方法當字符串與null連接時,拋出NullPointer異常
    • +運算符字符串與null串聯時未引發任何異常。
    public class GFG { 
        public static void main(String[] args) 
        { 
            String s = "Geeks"; 
            String r = null; 
            System.out.println(s + r); 
      
            // It raises an NullPointer Exception 
            System.out.println(s.concat(r)); 
        } 
    } 

    輸出:

    Geeksnull
    Exception in thread "main" java.lang.NullPointerException
        at java.lang.String.concat(String.java:2027)
        at GFG.main(GFG.java:7)
    
  4. 創建一個新的String對象。
    • concat()方法將兩個字符串連接起來並僅返回字符串長度大於0的新字符串對象,否則返回相同的對象。
    • +運算符每次都創建一個新的字符串對象,與字符串長度無關。
    public class GFG { 
        public static void main(String[] args) 
        { 
      
            String s = "Geeks", g = ""; 
            String f = s.concat(g); 
            if (f == s) 
                System.out.println("Both are same"); 
            else
                System.out.println("not same"); 
            String e = s + g; 
            if (e == s) 
                System.out.println("Both are same"); 
            else
                System.out.println("not same"); 
        } 
    } 

    輸出:

    Both are same
    not same
    
  5. 性能:
    concat()方法勝過+運算符,因為僅當字符串長度大於零(0)時,它才會創建一個新對象,但是+運算符始終會創建一個新字符串,而與字符串的長度無關。

差異表:

concat()方法 +運算符
定義 一種concat()方法是組合兩個字符串的方法。 +運算符用於連接任意數量的字符串。
參數數量 CONCAT()方法,僅接受字符串的一個參數,然後將其與另一個字符串連接。 +運算符接受任意數量的參數並組合所有字符串。
參數類型 CONCAT()方法僅接受字符串類型的參數。 +運算符接受任何類型的參數並將其轉換為字符串類型,然後將它們組合。
創建新的字符串 CONCAT()將兩個字符串連接起來,並僅在字符串長度大於0的情況下返回新的字符串對象,否則返回相同的對象。 +運算符每次與字符串長度無關都創建一個新的字符串對象。
空指針異常 CONCAT()當string與null串聯時,此方法引發NullPointer Exception。 +運算符連接字符串,沒有任何錯誤。
性能 concat()方法比+運算符更好,因為它僅在字符串長度大於零(0)時創建一個新對象,因此它使用較少的內存。 +運算符始終會創建一個新字符串,而與字符串長度無關,因此會占用更多內存。

 

 

參考資料

本文由《純淨天空》出品。文章地址: https://vimsky.com/zh-tw/article/4202.html,未經允許,請勿轉載。