在 Java 中高效地附加字串

Farkhanda Athar 2023年10月12日
  1. concat() 來自 java.lang.String
  2. 使用 + 運算子的字串連線
  3. 使用 java.lang.String 中的 concat() 方法
  4. 在 Java 中使用 StringBuffer 連線字串
  5. 在 Java 中連線字串時使用 StringBuilder
在 Java 中高效地附加字串

當我們談論 Java 中的字串連線時,會想到 + 運算子以最有效地附加字串。由於 Java 不提供對過載的支援,因此字串具有這種行為是特殊的。除了 + 操作符之外,還有多種方法用於在 Java 中附加字串:

  • StringBuffer
  • StringBuilder

concat() 來自 java.lang.String

StringBufferStringBuilder 類都用於此目的。StringBuilder 很重要,因為它是連線字串的最快方法。StringBuffer 由於同步方法而具有第二優先權,並且因為除它們之外的其他方法比這兩個方法慢 1000 倍。在這裡,我們將看到這四種方法的示例。

public class Main {
  public static void main(String args[]) {
    // 1st method of concat
    String str1 = "Most";
    str1 = str1.concat(" Welcome");
    str1 = str1.concat(" to University");
    System.out.println(str1);
    // 2nd method of concat
    String str2 = "Today";
    str2 = str2.concat(" is").concat(" your first").concat(" day");
    System.out.println(str2);
  }
}

輸出:

Most Welcome to University
Today is your first day

使用 + 運算子的字串連線

這是在 Java 中連線字串和數值的最簡單方法。當使用者在字串連線的開頭有兩個或多個原始值(例如 shortcharint)時,必須將它們顯式轉換為字串。例如,System.out.println(300, + 'B'+ "") 永遠不會列印 300B,它將通過獲取 B 的 ASCII 值,然後將其新增到 300 來列印 366。另一方面, 如果我們使用 System.out.println('', + 300 +'B'),那麼它將列印 300B。在呼叫 String() 之前,所有 + 運算子掃描都被連線到各種 StringBuilder.append() 呼叫中。

使用 java.lang.String 中的 concat() 方法

concat(String str) 方法將一些特定的字串連線到字串的末尾。它分配長度的 char[],等於兩個字串的組合長度。此方法將 String 資料複製到該字串中,並從私有 String 建構函式建立一個新的 String 物件,該建構函式不會複製輸入 char[],如下所示。

import java.util.Scanner;
public class Main {
  public static void main(String args[]) {
    Scanner sc = new Scanner(System.in);
    System.out.println("Enter the first string: ");
    String str1 = sc.next();
    System.out.println("Enter the second string: ");
    String str2 = sc.next();

    String result = str1 + str2;
    System.out.println(result);
  }
}

輸出:

Enter the first string: 
United
Enter the second string: 
Kingdom
UnitedKingdom

在 Java 中使用 StringBuffer 連線字串

StringBuilder 不可用時,這是連線多個字串、整數和 Java 其他部分的最合適的方法。它比 concat()+ 運算子方法工作得更快。這種方法的唯一缺點是 StringBuffer 的 append 方法是同步的。它的工作方法類似於 StringBuilder 方法。它還提供了不同的過載附加方法來連線 charintshort 等。

public class Main {
  public static void main(String args[]) {
    StringBuffer sb = new StringBuffer("My ");
    sb.append("Country");
    System.out.println(sb);
  }
}

輸出:

My Country

在 Java 中連線字串時使用 StringBuilder

這是在 Java 中連線字串的最佳方法之一。最重要的是,當使用者連線多個字串時。當使用者需要附加多個字串時,這種方法使用起來簡單高效。但是當使用者需要連線字串時,這種方法並不常用。

public class Main {
  public static void main(String args[]) {
    StringBuilder sb = new StringBuilder("My ");
    sb.append("Country");
    System.out.println(sb);
  }
}

輸出:

My Country

相關文章 - Java String