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

更新於:2024年10月10日

1K+ 次瀏覽

啟動你的 職業生涯

完成課程獲得認證

開始學習
廣告