Java StringBuilder appendCodePoint() 方法



Java 的 StringBuilder appendCodePoint() 方法將程式碼點的字串表示形式附加到一個序列中。簡單來說,此方法接受的引數與序列的內容組合起來形成一個新的字串。此序列的長度將增加 Character.charCount(codePoint) 方法的結果。

此方法的整體效果與使用 Character.toChars(int) 方法將引數轉換為字元陣列,然後將該陣列中的字元附加到此字元序列完全相同。

語法

以下是 Java StringBuilder appendCodePoint() 方法的語法

public StringBuilder appendCodePoint(int codePoint)

引數

  • codePoint − 一個 Unicode 程式碼點

返回值

此方法返回對該 StringBuilder 物件的引用。

示例:將程式碼點的字串表示形式附加到 StringBuilder

在下面的示例中,當我們簡單地將 Unicode 程式碼點作為引數傳遞給此方法時,此程式碼點的字元將附加到輸入序列並返回。

public class StringBuilderAppend_cdp {
   public static void main(String args[]) {

      StringBuilder word = new StringBuilder("Tutorialspoin");
      int cp = 116;

      System.out.println("The input sequence: " + word);
      System.out.println("The unicode code point: " + cp);
      System.out.println("The appended sequence: " + word.appendCodePoint(cp));
   }
}

輸出

編譯並執行給定程式後,輸出將顯示如下:

The input sequence: Tutorialspoin
The unicode code point: 116
The appended sequence: Tutorialspoint

示例:在將字元轉換為程式碼點後附加到 StringBuilder

我們還可以透過型別轉換將字元值作為引數傳遞給此方法,並且該方法仍然會返回附加的序列。

public class StringBuilderAppend_cdp {
   public static void main(String args[]) {

      StringBuilder word = new StringBuilder("Tutorialspoint");
      char ch = '!';

      System.out.println("The input sequence: " + word);
      System.out.println("The character to be appended: " + ch);
      System.out.println("The appended sequence: " + word.appendCodePoint((int)ch));
   }
}

輸出

讓我們編譯並執行上面的程式,以生成如下所示的輸出:

The input sequence: Tutorialspoint
The character to be appended: !
The appended sequence: Tutorialspoint!

示例:使用 Null 時出現編譯錯誤

但是,如果我們將 null 值作為引數傳遞給此方法,則該方法將引發編譯時錯誤。

public class StringBuilderAppend_cdp {
   public static void main(String args[]) {

      StringBuilder word = new StringBuilder("Tutorialspoint");
      int ch = null;

      // a compile time error as there is no code point for null values
      System.out.println("The appended sequence: " + word.appendCodePoint(ch));
   }
}

編譯時錯誤

如果我們嘗試編譯並執行上面的程式,則會引發如下所示的編譯時錯誤:

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
        Type mismatch: cannot convert from null to char
        at StringBuilderAppend_cdp.main(StringBuilderAppend_cdp.java:7)

示例:使用無效程式碼點時出現異常

假設我們將 Unicode 系統中不存在的程式碼點作為引數傳遞給該方法,則該方法將引發 IllegalArgumentException。

public class StringBuilderAppend_cdp {
   public static void main(String args[]) {

      StringBuilder word = new StringBuilder("Tutorialspoint");
      int cp = -123;

      // throws an exception
      System.out.println("The appended sequence: " + word.appendCodePoint(cp));
   }
}

異常

如果我們嘗試編譯並執行上面的程式,則會引發 IllegalArgumentException,因為程式碼點不能為負:

Exception in thread "main" java.lang.IllegalArgumentException: Not a valid Unicode code point: 0xFFFFFF85
        at java.base/java.lang.Character.toChars(Character.java:9493)
        at java.base/java.lang.AbstractStringBuilder.appendCodePoint(AbstractStringBuilder.java:962)
        at java.base/java.lang.StringBuilder.appendCodePoint(StringBuilder.java:443)
        at StringBuilderAppend_cdp.main(StringBuilderAppend_cdp.java:10)
java_lang_stringbuilder.htm
廣告