Java StringBuffer Methods - Java 147

Java StringBuffer Methods – Java 147

Java 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 這些方法的操作,提升開發效率,在應用上相當廣泛。

發佈留言