Java Convert String to String Array - Java 147

Java Convert String to String Array – Java 147

Java 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 提供了幾種常見方法的操作範例。

發佈留言