This commit is contained in:
Shekhar Gulati
2017-06-17 03:17:05 +05:30
parent 9b4f0ac791
commit 5eca5814de
2 changed files with 40 additions and 2 deletions
+15 -1
View File
@@ -42,8 +42,9 @@ import static java.util.stream.Collectors.*;
*/
public abstract class Strman {
private static final Predicate<String> NULL_STRING_PREDICATE = str -> str == null;
private static final Predicate<String> NULL_STRING_PREDICATE = Objects::isNull;
private static final Supplier<String> NULL_STRING_MSG_SUPPLIER = () -> "'value' should be not null.";
private static final String[] EMPTY_ARRAY = new String[0];
private Strman() {
}
@@ -1333,6 +1334,19 @@ public abstract class Strman {
.collect(toList());
}
/**
* Split lines to an array
*
* @param input The input String
* @return lines in an array
*/
public static String[] lines(String input) {
if (input == null) {
return EMPTY_ARRAY;
}
return input.split("\r\n?|\n");
}
private static void validate(String value, Predicate<String> predicate, final Supplier<String> supplier) {
if (predicate.test(value)) {
throw new IllegalArgumentException(supplier.get());
+25 -1
View File
@@ -32,9 +32,12 @@ import org.junit.Test;
import java.util.*;
import static java.util.Arrays.asList;
import static java.util.Collections.singletonList;
import static java.util.stream.Collectors.toList;
import static org.hamcrest.CoreMatchers.*;
import static org.hamcrest.collection.IsArrayContaining.hasItemInArray;
import static org.hamcrest.collection.IsArrayContainingInOrder.arrayContaining;
import static org.hamcrest.collection.IsArrayWithSize.arrayWithSize;
import static org.hamcrest.collection.IsArrayWithSize.emptyArray;
import static org.hamcrest.collection.IsEmptyCollection.empty;
import static org.junit.Assert.*;
@@ -1114,6 +1117,27 @@ public class StrmanTests {
@Test
public void zip_shouldReturnInputInListForm_whenOnlyOneInput() {
assertThat(zip("zip"), is(equalTo(asList("z", "i", "p"))));
assertThat(zip("z"), is(equalTo(asList("z"))));
assertThat(zip("z"), is(equalTo(singletonList("z"))));
}
@Test
public void lines_shouldReturnEmptyArrayWhenInputIsNull() throws Exception {
assertThat(lines(null), emptyArray());
}
@Test
public void lines_shouldReturnArrayWithOneEmptyElementWhenInputIsEmptyString() throws Exception {
assertThat(lines(""), arrayWithSize(1));
assertThat(lines(""), hasItemInArray(""));
}
@Test
public void lines_shouldSplitToLines() throws Exception {
assertThat(lines("Hello\r\nWorld").length, equalTo(2));
assertThat(lines("Hello\rWorld").length, equalTo(2));
assertThat(lines("Hello World").length, equalTo(1));
assertThat(lines("\r\n\n\r ").length, equalTo(4));
assertThat(lines("Hello\r\r\nWorld").length, equalTo(3));
assertThat(lines("Hello\r\rWorld").length, equalTo(3));
}
}