Table of Contents
ToggleStringBuilder in Java with Examples
用於建立可修改字串,是一個非同步的操作,因為 String 類別建立了一個不可變的字串,所以使用 StringBuilder 類別來建立字串,用來取代 String 類別的替代方案,StringBuilder in Java 介紹常見的 appendCodePoint 、 codePoints 、 subSequence 等方法,本篇增加了範例,並透過單元測試來驗證產出結果。
檔案目錄
./
+- src
+- test
| +- org
| +- ruoxue
| +- java_147
| +- string
| +- stringbuilder
| +- StringBuilderWithExamplesTest.java
單元測試
提供新增、反轉等操作 String 。
appendCodePoint
建立一個 StringBuilder ,增加 codePoint 。
@Test
public void appendCodePoint() {
int expectedSize = 10;
StringBuilder builder = new StringBuilder();
builder.append("Java 147");
builder.appendCodePoint(32);
builder.appendCodePoint(65);
System.out.println(builder);
assertEquals(expectedSize, builder.length());
}
Java 147 A
codePoints
建立一個 StringBuilder ,增加字串,轉成 codePoint 。
@Test
public void codePoints() {
StringBuilder builder = new StringBuilder();
builder.append("Java 147");
IntStream stream = builder.codePoints();
List<Integer> list = stream.boxed().collect(Collectors.toList());
System.out.println(list);
}
[74, 97, 118, 97, 32, 49, 52, 55]
codePointAt
StringBuilder Java 建立一個 StringBuilder ,增加字串後,取得指定索引的 codePoint 。
@Test
public void codePointAt() {
int expected = 97;
StringBuilder builder = new StringBuilder();
builder.append("Java 147");
int result = builder.codePointAt(3);
System.out.println(result);
assertEquals(expected, result);
}
97
codePointBefore
StringBuilder Java 建立一個 StringBuilder ,增加字串後,取得指定索引前的 codePoint 。
@Test
public void codePointBefore() {
int expected = 118;
StringBuilder builder = new StringBuilder();
builder.append("Java 147");
int result = builder.codePointBefore(3);
System.out.println(result);
assertEquals(expected, result);
}
118
codePointCount
Java StringBuilder 建立一個 StringBuilder ,增加字串,取得 codePoint 數量。
@Test
public void codePointCount() {
int expected = 3;
StringBuilder builder = new StringBuilder();
builder.append("Java 147");
int result = builder.codePointCount(0, 3);
System.out.println(result);
assertEquals(expected, result);
}
3
offsetByCodePoints
Java StringBuilder 建立一個 StringBuilder ,建立一個 StringBuilder ,增加字串後,取得指定索引偏移量的 codePoint 。
@Test
public void offsetByCodePoints() {
int expected = 5;
StringBuilder builder = new StringBuilder();
builder.append("Java 147");
int result = builder.offsetByCodePoints(1, 4);
System.out.println(result);
assertEquals(expected, result);
}
5
subSequence
Java StringBuilder 建立一個 StringBuilder ,增加字串後,取得指定索引區間的字串。
@Test
public void subSequence() {
CharSequence expected = "Java";
StringBuilder builder = new StringBuilder();
builder.append("Java 147");
CharSequence result = builder.subSequence(0, 4);
System.out.println(result);
assertEquals(expected, result);
}
Java
reverse
Java StringBuilder 建立一個 StringBuilder ,增加字串後,取得反轉字串。
@Test
public void reverse() {
StringBuilder builder = new StringBuilder();
builder.append("Java 147, ");
builder.append("Spring boot 168");
StringBuilder result = builder.reverse();
System.out.println(result);
}
861 toob gnirpS ,741 avaJ
StringBuilderWithExamplesTest.java
StringBuilder in Java 新增單元測試,驗證是否符合預期。
package org.ruoxue.java_147.string.stringbuilder;
import static org.junit.Assert.*;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
import org.junit.Test;
public class StringBuilderWithExamplesTest {
@Test
public void appendCodePoint() {
int expectedSize = 10;
StringBuilder builder = new StringBuilder();
builder.append("Java 147");
builder.appendCodePoint(32);
builder.appendCodePoint(65);
System.out.println(builder);
assertEquals(expectedSize, builder.length());
}
@Test
public void codePoints() {
StringBuilder builder = new StringBuilder();
builder.append("Java 147");
IntStream stream = builder.codePoints();
List<Integer> list = stream.boxed().collect(Collectors.toList());
System.out.println(list);
}
@Test
public void codePointAt() {
int expected = 97;
StringBuilder builder = new StringBuilder();
builder.append("Java 147");
int result = builder.codePointAt(3);
System.out.println(result);
assertEquals(expected, result);
}
@Test
public void codePointBefore() {
int expected = 118;
StringBuilder builder = new StringBuilder();
builder.append("Java 147");
int result = builder.codePointBefore(3);
System.out.println(result);
assertEquals(expected, result);
}
@Test
public void codePointCount() {
int expected = 3;
StringBuilder builder = new StringBuilder();
builder.append("Java 147");
int result = builder.codePointCount(0, 3);
System.out.println(result);
assertEquals(expected, result);
}
@Test
public void offsetByCodePoints() {
int expected = 5;
StringBuilder builder = new StringBuilder();
builder.append("Java 147");
int result = builder.offsetByCodePoints(1, 4);
System.out.println(result);
assertEquals(expected, result);
}
@Test
public void subSequence() {
CharSequence expected = "Java";
StringBuilder builder = new StringBuilder();
builder.append("Java 147");
CharSequence result = builder.subSequence(0, 4);
System.out.println(result);
assertEquals(expected, result);
}
@Test
public void reverse() {
StringBuilder builder = new StringBuilder();
builder.append("Java 147, ");
builder.append("Spring boot 168");
StringBuilder result = builder.reverse();
System.out.println(result);
}
}
心得分享
Java StringBuilder Example 提供了幾種 StringBuilder 常見方法的操作範例,在應用上相當廣泛,熟悉 Java StringBuilder 這些方法的操作,像是: appendCodePoint 、 codePoints 、 subSequence 等方法。