
- Java.lang 包類
- Java.lang - 首頁
- Java.lang - Boolean
- Java.lang - Byte
- Java.lang - Character
- Java.lang - Character.Subset
- Java.lang - Character.UnicodeBlock
- Java.lang - Class
- Java.lang - ClassLoader
- Java.lang - Compiler
- Java.lang - Double
- Java.lang - Enum
- Java.lang - Float
- Java.lang - InheritableThreadLocal
- Java.lang - Integer
- Java.lang - Long
- Java.lang - Math
- Java.lang - Number
- Java.lang - Object
- Java.lang - Package
- Java.lang - Process
- Java.lang - ProcessBuilder
- Java.lang - Runtime
- Java.lang - RuntimePermission
- Java.lang - SecurityManager
- Java.lang - Short
- Java.lang - StackTraceElement
- Java.lang - StrictMath
- Java.lang - String
- Java.lang - StringBuffer
- Java.lang - StringBuilder
- Java.lang - System
- Java.lang - Thread
- Java.lang - ThreadGroup
- Java.lang - ThreadLocal
- Java.lang - Throwable
- Java.lang - Void
- Java.lang 包其他
- Java.lang - 介面
- Java.lang - 錯誤
- Java.lang - 異常
- Java.lang 包有用資源
- Java.lang - 有用資源
- Java.lang - 討論
Java StringBuilder append() 方法
Java 的StringBuilder append() 方法將各種引數的字串表示形式附加到序列中。此方法是字串連線技術的一部分,用於在 Java 中組合兩個或多個字串。
我們可能已經知道,字串連線技術可以在三種情況下完成
- 情況 1 − 使用 + 運算子
- 情況 2 − 使用 concat() 方法
- 情況 3 − 使用 append() 方法
+ 運算子和 append() 方法是字串連線最有效的解決方案。此外,這兩種情況是相同的,因為 JVM 通常將情況 1 轉換為情況 3 來組合字串。
注意 − 此方法有 13 種不同的多型形式,我們將在下面的文章中看到所有這些形式。
語法
以下是 Java StringBuilder append() 方法的語法
public StringBuilder append(boolean b) or, public StringBuilder append(char c) or, public StringBuilder append(char[] str) or, public StringBuilder append(char[] str, int offset, int len) or, public StringBuilder append(CharSequence s) or, public StringBuilder append(CharSequence s, int start, int end) or, public StringBuilder append(double d) or, public StringBuilder append(float f) or, public StringBuilder append(int i) or, public StringBuilder append(long lng) or, public StringBuilder append(Object obj) or, public StringBuilder append(String st) or, public StringBuilder append(StringBuilder sb)
引數
b − 這是布林值。
c − 這是字元值。
str − 這是要附加的字元
offset − 這是要附加的第一個字元的索引。
len − 這是要附加的字元數。
s − 這是要附加的 CharSequence。
start − 這是要附加的子序列的起始索引。
end − 這是要附加的子序列的結束索引。
d − 這是雙精度數值。
f − 這是浮點數值。
i − 這是整數值。
lng − 這是長整數值。
obj − 這是物件的值。
st − 這是字串的值。
sb − 這是要附加的 StringBuilder。
返回值
此方法返回對此物件的引用。
示例:將布林值附加到 StringBuilder
如果引數是布林值,則該方法會將布林值直接附加到序列中。
以下示例顯示了 Java StringBuilder append(Boolean b) 方法的用法。在這裡,我們使用字串名稱“tuts”例項化一個 StringBuilder 物件“buff”。然後,我們使用“buff”物件和布林引數“true”呼叫 append() 方法。返回值將是附加的字串名稱“tuts true”。類似地,我們使用字串名稱“abcd”和布林引數“false”演示了另一個案例。
package com.tutorialspoint; public class StringBuilderDemo { public static void main(String[] args) { StringBuilder buff = new StringBuilder("tuts "); System.out.println("buffer = " + buff); // appends the boolean argument as string to the string buffer buff.append(true); // print the string buffer after appending System.out.println("After append = " + buff); buff = new StringBuilder("abcd "); System.out.println("buffer = " + buff); // appends the boolean argument as string to the string buffer buff.append(false); // print the string buffer after appending System.out.println("After append = " + buff); } }
輸出
讓我們編譯並執行上述程式,這將產生以下結果:
buffer = tuts After append = tuts true buffer = abcd After append = abcd false
示例:將字元附加到 StringBuilder
當傳遞字元引數時,該方法會將此引數附加到輸入序列的內容中。此序列的長度增加 1。
以下示例顯示了 Java StringBuilder append(char c) 方法的用法。在這裡,我們建立了一個 StringBuilder 物件“buff”並使用字串名稱“tuts”對其進行初始化。然後,我們使用“buff”物件和引數“A”呼叫 append() 方法。返回值將是附加的字串名稱“tuts A”。類似地,我們使用字串名稱“abcd”和字元引數“!”演示了另一個案例。
package com.tutorialspoint; public class StringBuilderDemo { public static void main(String[] args) { StringBuilder buff = new StringBuilder("tuts "); System.out.println("buffer = " + buff); // appends the char argument as string to the string buffer. buff.append('A'); // print the string buffer after appending System.out.println("After append = " + buff); buff = new StringBuilder("abcd "); System.out.println("buffer = " + buff); // appends the char argument as string to the string buffer. buff.append('!'); // print the string buffer after appending System.out.println("After append = " + buff); } }
輸出
讓我們編譯並執行上述程式,這將產生以下結果:
buffer = tuts After append = tuts A buffer = abcd After append = abcd !
示例:將字元陣列附加到 StringBuilder
當將字元陣列作為引數傳遞給該方法時,陣列引數的字元將按順序附加到此序列的內容中。此序列的長度增加陣列引數的長度。
以下示例顯示了 Java StringBuilder append(char[] str) 方法的用法。在這裡,我們使用字串名稱“tuts”例項化一個 StringBuilder 物件“buff”。我們使用“buff”物件和包含五個元素{'p','o','i','n','t'}的字元陣列引數呼叫 append() 方法。返回值將是附加的字串名稱“tuts point”。
package com.tutorialspoint; public class StringBuilderDemo { public static void main(String[] args) { StringBuilder buff = new StringBuilder("tuts "); System.out.println("buffer = " + buff); // char array char[] str = new char[]{'p','o','i','n','t'}; /* appends the string representation of char array argument to this string buffer */ buff.append(str); // print the string buffer after appending System.out.println("After append = " + buff); } }
輸出
讓我們編譯並執行上述程式,這將產生以下結果:
buffer = tuts After append = tuts point
示例:將字元子陣列附加到 StringBuilder
當該方法獲取字元陣列、索引以及要附加的字元長度時,從任何索引開始的字元陣列的字元將按順序附加到此序列的內容中。此序列的長度增加附加的字元數。
以下示例顯示了 Java StringBuilder append(char[] str, int offset, int len) 方法的用法。我們首先嚐試使用字串名稱“amrood”例項化一個 StringBuilder 物件“buff”。然後,我們使用“buff”物件和包含 13 個元素{'a','d','m','i','n','i','s','t','r','a','t','o','r'}的字元陣列引數、偏移量引數'0'以及要新增的長度'5'呼叫 append() 方法。返回值將是附加的字串名稱“amrood admin”。
package com.tutorialspoint; public class StringBuilderDemo { public static void main(String[] args) { StringBuilder buff = new StringBuilder("amrood "); System.out.println("buffer = " + buff); // char array char[] str = new char[] {'a','d','m','i','n','i','s','t','r','a','t','o','r'}; /* appends the string representation of char array argument to this string buffer with offset at index 0 and length as 5 */ buff.append(str, 0, 5); // print the string buffer after appending System.out.println("After append = " + buff); } }
輸出
讓我們編譯並執行上述程式,這將產生以下結果:
buffer = amrood After append = amrood admin
示例:將 CharSequence 附加到 StringBuilder
如果將 CharSequence 作為引數傳遞給該方法,則 CharSequence 引數的字元將按順序附加,從而使此序列的長度增加引數的長度。
以下示例顯示了 Java StringBuilder append(CharSequence s) 方法的用法。在這裡,我們使用字串名稱“compile”例項化一個 StringBuilder 物件“buff”。我們使用包含“online”的 CharSequence 引數呼叫“buff”物件的 append() 方法。返回值將是附加的字串名稱“compile online”。
package com.tutorialspoint; public class StringBuilderDemo { public static void main(String[] args) { StringBuilder buff = new StringBuilder("compile "); System.out.println("buffer = " + buff); CharSequence cSeq = "online"; // appends the CharSequence buff.append(cSeq); // print the string buffer after appending System.out.println("After append = " + buff); } }
輸出
讓我們編譯並執行上述程式,這將產生以下結果:
buffer = compile After append = compile online
示例:將子 CharSequence 附加到 StringBuilder
當將 CharSequence 作為引數與起始索引和結束索引一起傳遞時,從任何索引開始的 CharSequence 引數的字元將按順序附加到此序列的內容中,直到結束(不包含)索引。此序列的長度將增加附加的字元數。
以下示例顯示了 Java StringBuilder append(CharSequence s, int start, int end) 方法的用法。我們首先嚐試使用字串名稱“tutorials”例項化一個 StringBuilder 物件“buff”。然後,我們使用 CharSequence 引數“tutspoint”、起始引數'4'和結束引數'9'呼叫“buff”物件的 append() 方法。返回值將是附加的字串名稱“tutorials point”。
package com.tutorialspoint; public class StringBuilderDemo { public static void main(String[] args) { StringBuilder buff = new StringBuilder("tutorials "); System.out.println("buffer = " + buff); CharSequence cSeq = "tutspoint"; // appends the CharSequence with start index 4 and end index 9 buff.append(cSeq, 4, 9); // print the string buffer after appending System.out.println("After append = " + buff); } }
輸出
讓我們編譯並執行上述程式,這將產生以下結果:
buffer = tutorials After append = tutorials point
示例:將雙精度數附加到 StringBuilder
如果引數是雙精度數值,則該方法會將此雙精度數值直接附加到序列中。
以下示例顯示了 Java StringBuilder append(double d) 方法的用法。
package com.tutorialspoint; public class StringBuilderDemo { public static void main(String[] args) { StringBuilder buff = new StringBuilder("tuts "); System.out.println("buffer = " + buff); // appends the double argument as string to the string buffer buff.append(30.100000001d); // print the string buffer after appending System.out.println("After append = " + buff); buff = new StringBuilder("abcd "); System.out.println("buffer = " + buff); // appends the double argument as string to the string buffer buff.append(20.12d); // print the string buffer after appending System.out.println("After append = " + buff); } }
輸出
讓我們編譯並執行上述程式,這將產生以下結果:
buffer = tuts After append = tuts 30.100000001 buffer = abcd After append = abcd 20.12
示例:將浮點數附加到 StringBuilder
如果引數是浮點數值,則該方法會將此浮點數值直接附加到序列中。
以下示例顯示了 Java StringBuilder append(float f) 方法的用法。
package com.tutorialspoint; public class StringBuilderDemo { public static void main(String[] args) { StringBuilder buff = new StringBuilder("tuts "); System.out.println("buffer = " + buff); // appends the float argument as string to the string buffer buff.append(6.5f); // print the string buffer after appending System.out.println("After append = " + buff); buff = new StringBuilder("abcd "); System.out.println("buffer = " + buff); // appends the float argument as string to the string buffer buff.append(10.25f); // print the string buffer after appending System.out.println("After append = " + buff); } }
輸出
讓我們編譯並執行上述程式,這將產生以下結果:
buffer = tuts After append = tuts 6.5 buffer = abcd After append = abcd 10.25
示例:將整數附加到 StringBuilder
如果引數是整數值,則該方法會將此整數值直接附加到序列中。
以下示例顯示了 Java StringBuilder append(int i) 方法的用法。
package com.tutorialspoint; public class StringBuilderDemo { public static void main(String[] args) { StringBuilder buff = new StringBuilder("tuts "); System.out.println("buffer = " + buff); // appends the int argument as string to the string buffer buff.append(10); // print the string buffer after appending System.out.println("After append = " + buff); buff = new StringBuilder("abcd "); System.out.println("buffer = " + buff); // appends the int argument as string to the string buffer buff.append(253); // print the string buffer after appending System.out.println("After append = " + buff); } }
輸出
讓我們編譯並執行上述程式,這將產生以下結果:
buffer = tuts After append = tuts 10 buffer = abcd After append = abcd 253
示例:將長整數附加到 StringBuilder
如果引數是長整數值,則該方法會將此長整數值直接附加到序列中。
以下示例顯示了 Java StringBuilder append(long lng) 方法的用法。
package com.tutorialspoint; public class StringBuilderDemo { public static void main(String[] args) { StringBuilder buff = new StringBuilder("tuts "); System.out.println("buffer = " + buff); // appends the long argument as string to the string buffer buff.append(254378L); // print the string buffer after appending System.out.println("After append = " + buff); buff = new StringBuilder("abcd "); System.out.println("buffer = " + buff); // appends the long argument as string to the string buffer buff.append(5234l); // print the string buffer after appending System.out.println("After append = " + buff); } }
輸出
讓我們編譯並執行上述程式,這將產生以下結果:
buffer = tuts After append = tuts 254378 buffer = abcd After append = abcd 5234
示例:將物件附加到 StringBuilder
如果引數是物件值,則該方法會將此物件值直接附加到序列中。
以下示例顯示了 Java StringBuilder append(Object obj) 方法的用法。我們首先建立一個 StringBuilder 物件“buff”並使用字串名稱“tutorials”對其進行初始化。然後,使用 Object 類直接建立另一個物件並使用另一個字串“point”對其進行初始化。透過使用 StringBuilder 物件呼叫 append() 方法並將另一個物件作為引數傳遞給它,將這兩個物件附加在一起。
package com.tutorialspoint; public class StringBuilderDemo { public static void main(String[] args) { StringBuilder buff = new StringBuilder("tutorials "); System.out.println("buffer = " + buff); Object obVal = "point"; // appends the Object value buff.append(obVal); // print the string buffer after appending System.out.println("After append = " + buff); } }
輸出
讓我們編譯並執行上述程式,這將產生以下結果:
buffer = tutorials After append = tutorials point
示例:將字串附加到 StringBuilder
如果引數是字串值,則該方法會將此字串值直接附加到序列中。如果字串為 null,則向序列中新增四個 null 值。
以下示例顯示了 Java StringBuilder append(String st) 方法的用法。
package com.tutorialspoint; public class StringBuilderDemo { public static void main(String[] args) { StringBuilder buff = new StringBuilder("tutorials "); System.out.println("buffer = " + buff); // appends the string argument to the string buffer buff.append("point"); // print the string buffer after appending System.out.println("After append = " + buff); buff = new StringBuilder("1234 "); System.out.println("buffer = " + buff); // appends the string argument to the string buffer buff.append("!#$%"); // print the string buffer after appending System.out.println("After append = " + buff); } }
輸出
讓我們編譯並執行上述程式,這將產生以下結果:
buffer = tutorials After append = tutorials point buffer = 1234 After append = 1234 !#$%
示例:將 StringBuilder 附加到 StringBuilder
如果引數是 StringBuilder 值,則該方法會將此 StringBuilder 值直接附加到序列中。如果 StringBuilder 為 null,則向序列中新增四個 null 值。
以下示例顯示了 Java StringBuilder append(StringBuilder sb) 方法的用法。我們首先建立兩個 StringBuilder 物件“buff1”和“buff2”。然後,分別使用字串名稱“tutorials”和“point”對其進行初始化。透過使用 StringBuilder 物件呼叫 append() 方法並將另一個 StringBuilder 物件作為引數傳遞給它,將這兩個物件附加在一起。
package com.tutorialspoint; public class StringBuilderDemo { public static void main(String[] args) { StringBuilder buff1 = new StringBuilder("tutorials "); System.out.println("buffer1 = " + buff1); StringBuilder buff2 = new StringBuilder("point "); System.out.println("buffer2 = " + buff2); // appends stringbuilder2 to stringbuilder1 buff1.append(buff2); // print the string buffer after appending System.out.println("After append = " + buff1); } }
輸出
讓我們編譯並執行上述程式,這將產生以下結果:
buffer1 = tutorials buffer2 = point After append = tutorials point
示例:在將帶有負索引的 CharSequence 附加到 StringBuilder 時遇到異常
如果該方法的起始和結束引數均為負數;如果起始大於結束;如果結束大於 s.length(),則該方法在這三種情況下都會丟擲 IndexOutOfBounds 異常。
以下示例演示了 java.lang.StringBuilder.append() 方法丟擲異常的情況。在這裡,我們例項化一個 StringBuilder 物件“buff”,並使用“tutorialspoint”初始化一個 CharSequence。然後,透過傳遞 CharSequence 以及起始和結束引數為負值,使用 StringBuilder 物件呼叫該方法。在這種情況下,該方法將丟擲異常。
public class StringBuilderAppend { public static void main(String[] args) { StringBuilder buff = new StringBuilder("tutorials "); System.out.println("buffer = " + buff); CharSequence cSeq = "tutorialspoint"; // throws exception as the index are negative buff.append(cSeq,-3, -5); System.out.println("After append = " + buff); } }
異常
程式編譯並執行後,由於起始和結束引數為負數,因此該方法會丟擲 IndexOutOfBoundsException 異常。
Exception in thread "main" java.lang.IndexOutOfBoundsException: Range [-3, -5) out of bounds for length 14 at java.base/jdk.internal.util.Preconditions$3.apply(Preconditions.java:71) at java.base/jdk.internal.util.Preconditions$3.apply(Preconditions.java:68) at java.base/jdk.internal.util.Preconditions$4.apply(Preconditions.java:213) at java.base/jdk.internal.util.Preconditions$4.apply(Preconditions.java:210) at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:98) at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckFromToIndex(Preconditions.java:112) at java.base/jdk.internal.util.Preconditions.checkFromToIndex(Preconditions.java:349) at java.base/java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:684) at java.base/java.lang.StringBuilder.append(StringBuilder.java:218) at StringBuilderAppend.main(StringBuilderAppend.java:13)