Java 中 concat() 方法和 + 運算子的區別
Java 提供兩種方式來連線字串:**concat()** 方法和 **+** 運算子。它們都能將字串連線在一起,但在工作方式上存在一些重要區別。
concat() 方法比較具體和有限,而 + 運算子更靈活。因此,儘管它們的功能相同,但理解何時使用哪種方法有助於編寫更高效或更簡潔的 Java 程式碼。
Concat() 與 + 運算子的比較
以下是 concat 方法和 + 運算子之間的一些重要區別。
關鍵 | Concat 方法 | + 運算子 |
---|---|---|
型別 | 從語法上看,concat() 是一個方法,屬於 java.lang.String 包,作用於 **String** 物件。 | 另一方面,+ 是一個運算子,而不是方法,它既可以加數字,也可以連線值。 |
引數數量 | concat() 方法只能接受一個引數作為輸入,並將此輸入新增到呼叫此方法的目標字串。 | + 運算子可以連線多個字串,它不限於只接受一個引數作為輸入,並且它可以作用於不同的資料型別。 |
輸入型別 | concat() 方法只能接受字串作為輸入,如果提供其他型別的輸入,則會引發編譯時錯誤。 | + 運算子可以接受任何型別的輸入,並在連線到目標字串之前將其轉換為字串。 |
輸出為新的字串 | 只有當輸出字串長度大於零時,concat 方法才會建立一個新的字串物件作為輸出;否則,它將返回相同的目標字串作為輸出物件。 | + 運算子始終建立一個新的物件作為輸出,無論連線後生成的字串長度是多少。 |
執行期間的異常 | 如果使用 null 作為輸入呼叫 concat() 方法,則會返回空指標異常。 | 另一方面,+ 運算子在使用 null 呼叫時不會丟擲任何異常。 |
效能 | 對於 concat() 方法,如果結果字串長度為零,則不會建立新物件,因此與 + 運算子相比,它消耗的記憶體更少。 | + 運算子在連線字串時始終會在記憶體中建立一個新物件,因此會消耗更多記憶體。 |
示例
以下示例演示了 concat() 方法。
ConcatDemo.java
public class ConcatDemo { public static void main(String args[]){ String s = "I am "; s = s.concat("Indian"); System.out.println(s); } }
輸出
I am Indian
示例
以下示例演示了 concat() 方法。OperatorDemo.java
public class OperatorDemo { public static void main(String args[]){ String s1 = "I am "; String s2 = "Indian"; String s3 = s2 + s1; System.out.println(s3); } }
輸出
Indian I am
廣告