Table of Contents
ToggleJava StringBuffer Methods
為了應對頻繁對字串做修改操作的場景, Java 從 JDK1 開始就提供了 mutable 的 StringBuffer 類別,對外暴露了可以修改其值的 append、insert、delete 等方法,調用這些方法可以直接修改 StringBuffer 的值,而不必建立新的物件,是一個同步的操作, StringBuffer Java Methods 本篇增加了範例,並透過單元測試來驗證產出結果。
檔案目錄
./
+- src
+- test
| +- org
| +- ruoxue
| +- java_147
| +- string
| +- stringbuffer
| +- StringBufferMethodsTest.java
單元測試
提供新增、插入、刪除等操作 String 。
append
建立一個 StringBuffer ,增加字串、字元、數字等。
@Test
public void append() {
int expectedSize = 26;
StringBuffer builder = new StringBuffer();
builder.append("Sprin");
builder.append('g');
builder.append(" ");
builder.append("boot");
builder.append(" ");
builder.append(168);
builder.append(", ");
builder.append(new StringBuffer().append("JUnit 151"));
System.out.println(builder);
assertEquals(expectedSize, builder.length());
}
Spring boot 168, JUnit 151
insert
建立一個 StringBuffer ,增加字串後,插入字串。
@Test
public void insert() {
int expectedSize = 24;
StringBuffer builder = new StringBuffer();
builder.append("Spring boot 168");
builder.insert(12, "JUnit 151");
System.out.println(builder);
assertEquals(expectedSize, builder.length());
}
Spring boot JUnit 151168
delete
StringBuffer Methods Java 建立一個 StringBuffer ,增加字串後,刪除指定索引區間的字串。
@Test
public void delete() {
int expectedSize = 8;
StringBuffer builder = new StringBuffer("Spring boot 168");
builder.delete(0, 7);
System.out.println(builder);
assertEquals(expectedSize, builder.length());
}
boot 168
deleteCharAt
StringBuffer Methods in Java 建立一個 StringBuffer ,增加字串後,刪除指定索引的單一字串。
@Test
public void deleteCharAt() {
int expectedSize = 14;
StringBuffer builder = new StringBuffer("Spring boot 168");
builder.deleteCharAt(12);
System.out.println(builder);
assertEquals(expectedSize, builder.length());
}
Spring boot 68
length
StringBuffer Methods in Java 建立一個 StringBuffer ,增加字串,取得長度。
@Test
public void length() {
int expectedSize = 36;
StringBuffer builder = new StringBuffer();
builder.append("Java 147, ");
builder.append("Spring boot 168, ");
builder.append("JUnit 151");
System.out.println(builder.length());
assertEquals(expectedSize, builder.length());
}
36
capacity
StringBuffer Methods in Java 建立一個 StringBuffer ,增加字串,取得容量。
@Test
public void capacity() {
int expectedSize = 34;
StringBuffer builder = new StringBuffer();
builder.append("Spring boot 168, ");
builder.append("JUnit 151");
System.out.println(builder.capacity());
assertEquals(expectedSize, builder.capacity());
}
34
trimToSize
StringBuffer Methods in Java 建立一個 StringBuffer ,增加字串,移除空位置,取得容量。
@Test
public void trimToSize() {
int expectedSize = 26;
StringBuffer builder = new StringBuffer();
builder.append("Spring boot 168, ");
builder.append("JUnit 151");
System.out.println(builder.capacity());
builder.trimToSize();
System.out.println(builder.capacity());
assertEquals(expectedSize, builder.capacity());
}
34
26
StringBufferMethodsTest.java
StringBuffer Methods in Java 新增單元測試,驗證是否符合預期。
package org.ruoxue.java_147.string.stringbuffer;
import static org.junit.Assert.*;
import org.junit.Test;
public class StringBufferMethodsTest {
@Test
public void append() {
int expectedSize = 26;
StringBuffer builder = new StringBuffer();
builder.append("Sprin");
builder.append('g');
builder.append(" ");
builder.append("boot");
builder.append(" ");
builder.append(168);
builder.append(", ");
builder.append(new StringBuffer().append("JUnit 151"));
System.out.println(builder);
assertEquals(expectedSize, builder.length());
}
@Test
public void insert() {
int expectedSize = 24;
StringBuffer builder = new StringBuffer();
builder.append("Spring boot 168");
builder.insert(12, "JUnit 151");
System.out.println(builder);
assertEquals(expectedSize, builder.length());
}
@Test
public void delete() {
int expectedSize = 8;
StringBuffer builder = new StringBuffer("Spring boot 168");
builder.delete(0, 7);
System.out.println(builder);
assertEquals(expectedSize, builder.length());
}
@Test
public void deleteCharAt() {
int expectedSize = 14;
StringBuffer builder = new StringBuffer("Spring boot 168");
builder.deleteCharAt(12);
System.out.println(builder);
assertEquals(expectedSize, builder.length());
}
@Test
public void length() {
int expectedSize = 36;
StringBuffer builder = new StringBuffer();
builder.append("Java 147, ");
builder.append("Spring boot 168, ");
builder.append("JUnit 151");
System.out.println(builder.length());
assertEquals(expectedSize, builder.length());
}
@Test
public void capacity() {
int expectedSize = 34;
StringBuffer builder = new StringBuffer();
builder.append("Spring boot 168, ");
builder.append("JUnit 151");
System.out.println(builder.capacity());
assertEquals(expectedSize, builder.capacity());
}
@Test
public void trimToSize() {
int expectedSize = 26;
StringBuffer builder = new StringBuffer();
builder.append("Spring boot 168, ");
builder.append("JUnit 151");
System.out.println(builder.capacity());
builder.trimToSize();
System.out.println(builder.capacity());
assertEquals(expectedSize, builder.capacity());
}
}
心得分享
StringBuffer Functions in Java 物件是可變的,不需要建立新的物件,可更改緩衝區的內容,熟悉 StringBuffer Methods in Java 這些方法的操作,提升開發效率,在應用上相當廣泛。