該Java字符串concat()方法將一個字符串連接到另一個字符串的末尾。此方法返回一個字符串,並將傳遞給該方法的字符串的值附加到字符串的末尾。
例:
|
輸出:
Gfg! is the best.
+運算符
+運算符用於在兩側連接字符串。
例:
|
輸出:
Gfg! is the best.
盡管 concat()和+運算符都用於串聯字符串,但是它們之間存在一些區別:
- 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
- 參數類型:
- strong-> concat()方法僅接受字符串參數,如果參數中指定了其他任何類型,則將引發錯誤。
- +運算符接受任何類型並轉換為字符串類型,然後將字符串連接起來。
- 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)
- 創建一個新的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
- 性能:
concat()方法勝過+運算符,因為僅當字符串長度大於零(0)時,它才會創建一個新對象,但是+運算符始終會創建一個新字符串,而與字符串的長度無關。
差異表:
點 | concat()方法 | +運算符 |
---|---|---|
定義 | 一種concat()方法是組合兩個字符串的方法。 | +運算符用於連接任意數量的字符串。 |
參數數量 | 在CONCAT()方法,僅接受字符串的一個參數,然後將其與另一個字符串連接。 | 在+運算符接受任意數量的參數並組合所有字符串。 |
參數類型 | CONCAT()方法僅接受字符串類型的參數。 | +運算符接受任何類型的參數並將其轉換為字符串類型,然後將它們組合。 |
創建新的字符串 | CONCAT()將兩個字符串連接起來,並僅在字符串長度大於0的情況下返回新的字符串對象,否則返回相同的對象。 | +運算符每次與字符串長度無關都創建一個新的字符串對象。 |
空指針異常 | 在CONCAT()當string與null串聯時,此方法引發NullPointer Exception。 | +運算符連接字符串,沒有任何錯誤。 |
性能 | concat()方法比+運算符更好,因為它僅在字符串長度大於零(0)時創建一個新對象,因此它使用較少的內存。 | +運算符始終會創建一個新字符串,而與字符串長度無關,因此會占用更多內存。 |