BAEL-6015: Split String by Whitespace in Java (#13146)
- Using split() method of String class - Using StringTokenizer class - Using split() utility method of the StringUtils class Co-authored-by: Tapan Avasthi <tavasthi@Tapans-MacBook-Air.local>
This commit is contained in:
parent
ee9122794c
commit
39f29ec690
|
@ -0,0 +1,104 @@
|
|||
package com.baeldung.splitstring;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertNull;
|
||||
|
||||
import java.util.StringTokenizer;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.junit.Test;
|
||||
|
||||
public class SplitStringUnitTest {
|
||||
private static final String SPACE = " ";
|
||||
private static final String TAB = " ";
|
||||
private static final String NEW_LINE = "\n";
|
||||
|
||||
private static final String FRUITS_TAB_SEPARATED = "Apple" + TAB + "Banana" + TAB + "Mango" + TAB + "Orange";
|
||||
private static final String FRUITS_SPACE_SEPARATED = "Apple" + SPACE + "Banana" + SPACE + "Mango" + SPACE + "Orange";
|
||||
private static final String FRUITS_NEWLINE_SEPARATED = "Apple" + NEW_LINE + "Banana" + NEW_LINE + "Mango" + NEW_LINE + "Orange";
|
||||
|
||||
@Test
|
||||
public void givenSpaceSeparatedString_whenSplitUsingSpace_shouldGetExpectedResult() {
|
||||
String fruits = FRUITS_SPACE_SEPARATED;
|
||||
String[] fruitArray = fruits.split(SPACE);
|
||||
verifySplit(fruitArray);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void givenTabSeparatedString_whenSplitUsingTab_shouldGetExpectedResult() {
|
||||
String fruits = FRUITS_TAB_SEPARATED;
|
||||
String[] fruitArray = fruits.split(TAB);
|
||||
verifySplit(fruitArray);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void givenNewlineSeparatedString_whenSplitUsingNewline_shouldGetExpectedResult() {
|
||||
String fruits = FRUITS_NEWLINE_SEPARATED;
|
||||
String[] fruitArray = fruits.split(NEW_LINE);
|
||||
verifySplit(fruitArray);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void givenTabSeparatedString_whenSplitUsingSpace_shouldNowSplit() {
|
||||
String fruits = FRUITS_TAB_SEPARATED;
|
||||
String[] fruitArray = fruits.split(" ");
|
||||
assertEquals(1, fruitArray.length);
|
||||
assertEquals(fruits, fruitArray[0]);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void givenWhiteSpaceSeparatedString_whenSplitUsingWhiteSpaceRegex_shouldGetExpectedResult() {
|
||||
String whitespaceRegex = SPACE + "|" + TAB + "|" + NEW_LINE;
|
||||
String[] allSamples = new String[] { FRUITS_SPACE_SEPARATED, FRUITS_TAB_SEPARATED, FRUITS_NEWLINE_SEPARATED };
|
||||
for (String fruits : allSamples) {
|
||||
String[] fruitArray = fruits.split(whitespaceRegex);
|
||||
verifySplit(fruitArray);
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void givenNewlineSeparatedString_whenSplitUsingWhiteSpaceMetaChar_shouldGetExpectedResult() {
|
||||
String whitespaceMetaChar = "\\s";
|
||||
String[] allSamples = new String[] { FRUITS_SPACE_SEPARATED, FRUITS_TAB_SEPARATED, FRUITS_NEWLINE_SEPARATED };
|
||||
for (String fruits : allSamples) {
|
||||
String[] fruitArray = fruits.split(whitespaceMetaChar);
|
||||
verifySplit(fruitArray);
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void givenSpaceSeparatedString_whenSplitUsingStringTokenizer_shouldGetExpectedResult() {
|
||||
String fruits = FRUITS_SPACE_SEPARATED;
|
||||
StringTokenizer tokenizer = new StringTokenizer(fruits);
|
||||
String[] fruitArray = new String[tokenizer.countTokens()];
|
||||
int index = 0;
|
||||
while (tokenizer.hasMoreTokens()) {
|
||||
fruitArray[index++] = tokenizer.nextToken();
|
||||
}
|
||||
verifySplit(fruitArray);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void givenWhiteSpaceSeparatedString_whenSplitUsingStringUtils_shouldGetExpectedResult() {
|
||||
String[] allSamples = new String[] { FRUITS_SPACE_SEPARATED, FRUITS_TAB_SEPARATED, FRUITS_NEWLINE_SEPARATED };
|
||||
for (String fruits : allSamples) {
|
||||
String[] fruitArray = StringUtils.split(fruits);
|
||||
verifySplit(fruitArray);
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void givenNullString_whenSplitUsingStringUtils_shouldReturnNull() {
|
||||
String fruits = null;
|
||||
String[] fruitArray = StringUtils.split(fruits);
|
||||
assertNull(fruitArray);
|
||||
}
|
||||
|
||||
private void verifySplit(String[] fruitArray) {
|
||||
assertEquals(4, fruitArray.length);
|
||||
assertEquals("Apple", fruitArray[0]);
|
||||
assertEquals("Banana", fruitArray[1]);
|
||||
assertEquals("Mango", fruitArray[2]);
|
||||
assertEquals("Orange", fruitArray[3]);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue