Table of Contents
ToggleJava Convert String to String Array
按照特定規則將字串分解為陣列元素,將輸入字串分成多個部分,介紹常見的 split 、 Pattern 、 StringTokenizer 等方法, Convert String to Array of Strings in Java 任務是將該字串轉換為字串陣列,本篇增加了範例,並透過單元測試來驗證產出結果。
檔案目錄
./
+- src
+- test
| +- org
| +- ruoxue
| +- java_147
| +- conversion
| +- string
| +- StringToStringArrayTest.java
單元測試
Convert String to String Array in Java 提供字串轉換成字串陣列等操作。
split
Convert String to String Array in Java 使用 split 切割成字串陣列。
@Test
public void split() {
int expectedSize = 5;
String value = "java147,springboot168,junit151,bash460,it484";
String[] array = value.split(",");
System.out.println(Arrays.toString(array));
assertEquals(expectedSize, array.length);
}
[java147, springboot168, junit151, bash460, it484]
pattern
Convert String to String Array in Java 使用 Pattern 切割成字串陣列。
@Test
public void pattern() {
int expectedSize = 5;
String value = "java147,springboot168,junit151,bash460,it484";
Pattern pattern = Pattern.compile(",");
String[] array = pattern.split(value);
System.out.println(Arrays.toString(array));
assertEquals(expectedSize, array.length);
}
[java147, springboot168, junit151, bash460, it484]
stringTokenizer
Convert String to String Array in Java 使用 StringTokenizer 切割成字串陣列。
@Test
public void stringTokenizer() {
int expectedSize = 5;
String value = "java147,springboot168,junit151,bash460,it484";
StringTokenizer stringTokenizer = new StringTokenizer(value, ",");
String[] array = new String[stringTokenizer.countTokens()];
int index = 0;
while (stringTokenizer.hasMoreTokens()) {
array[index] = stringTokenizer.nextToken();
index++;
}
System.out.println(Arrays.toString(array));
assertEquals(expectedSize, array.length);
}
[java147, springboot168, junit151, bash460, it484]
toArray
建立一個 ArrayList ,內有五個元素,轉換成 String 陣列。
@Test
public void toArray() {
int expectedSize = 5;
List<String> list = Arrays.asList("java147", "springboot168", "junit151", "bash460", "it484");
String[] array = new String[list.size()];
list.toArray(array);
System.out.println(Arrays.toString(array));
assertEquals(expectedSize, array.length);
}
[java147, springboot168, junit151, bash460, it484]
streamToArray
建立一個 ArrayList ,內有五個元素,使用 Stream ,轉換成 String 陣列。
@Test
public void streamToArray() {
int expectedSize = 5;
List<String> list = Arrays.asList("java147", "springboot168", "junit151", "bash460", "it484");
String[] array = list.stream().toArray(String[]::new);
System.out.println(Arrays.toString(array));
assertEquals(expectedSize, array.length);
}
[java147, springboot168, junit151, bash460, it484]
StringToStringArrayTest.java
Converting a String into a String Array in Java 新增單元測試,驗證是否符合預期。
package org.ruoxue.java_147.conversion.string;
import static org.junit.Assert.*;
import java.util.Arrays;
import java.util.List;
import java.util.StringTokenizer;
import java.util.regex.Pattern;
import org.junit.Test;
public class StringToStringArrayTest {
@Test
public void split() {
int expectedSize = 5;
String value = "java147,springboot168,junit151,bash460,it484";
String[] array = value.split(",");
System.out.println(Arrays.toString(array));
assertEquals(expectedSize, array.length);
}
@Test
public void pattern() {
int expectedSize = 5;
String value = "java147,springboot168,junit151,bash460,it484";
Pattern pattern = Pattern.compile(",");
String[] array = pattern.split(value);
System.out.println(Arrays.toString(array));
assertEquals(expectedSize, array.length);
}
@Test
public void stringTokenizer() {
int expectedSize = 5;
String value = "java147,springboot168,junit151,bash460,it484";
StringTokenizer stringTokenizer = new StringTokenizer(value, ",");
String[] array = new String[stringTokenizer.countTokens()];
int index = 0;
while (stringTokenizer.hasMoreTokens()) {
array[index] = stringTokenizer.nextToken();
index++;
}
System.out.println(Arrays.toString(array));
assertEquals(expectedSize, array.length);
}
@Test
public void toArray() {
int expectedSize = 5;
List<String> list = Arrays.asList("java147", "springboot168", "junit151", "bash460", "it484");
String[] array = new String[list.size()];
list.toArray(array);
System.out.println(Arrays.toString(array));
assertEquals(expectedSize, array.length);
}
@Test
public void streamToArray() {
int expectedSize = 5;
List<String> list = Arrays.asList("java147", "springboot168", "junit151", "bash460", "it484");
String[] array = list.stream().toArray(String[]::new);
System.out.println(Arrays.toString(array));
assertEquals(expectedSize, array.length);
}
}
心得分享
Converting a String into a String Array with Java 經常需要以特定模式處理輸入字串,在這種情況下,可以使用正則表達式或 regex 將輸入分解為 String 陣列,若遇到比較複雜的規則,就要仔細分析輸入格式,並實現解析器來解決問題, Converting a String into a String Array in Java 提供了幾種常見方法的操作範例。