mirror of
https://github.com/shekhargulati/strman-java.git
synced 2026-10-20 22:43:52 +00:00
Added support for chars function
This commit is contained in:
@@ -53,4 +53,22 @@ Returns array with strings between `start` and `end`.
|
||||
import static strman.Strman.between;
|
||||
String[] parts = between("[abc][def]", "[", "]";
|
||||
// parts = ["abc","def"]
|
||||
```
|
||||
```
|
||||
|
||||
## chars(value)
|
||||
|
||||
Returns a String array consisting of the characters in the String.
|
||||
|
||||
```java
|
||||
final String title = "title";
|
||||
char[] result = chars(title);
|
||||
// result = ["t", "i", "t", "l", "e"]
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
## Other functions that can be added
|
||||
|
||||
1. head
|
||||
2. tail
|
||||
@@ -18,7 +18,7 @@ public interface Strman {
|
||||
* @param appends an array of strings to append
|
||||
* @return full String
|
||||
*/
|
||||
static String append(final String value, final String... appends) throws IllegalArgumentException {
|
||||
static String append(final String value, final String... appends) {
|
||||
return appendArray(value, appends);
|
||||
}
|
||||
|
||||
@@ -79,9 +79,29 @@ public interface Strman {
|
||||
return Arrays.stream(parts).map(subPart -> subPart.substring(subPart.indexOf(start) + start.length())).toArray(String[]::new);
|
||||
}
|
||||
|
||||
static void validate(String value, Supplier<String> supplier) {
|
||||
static void validate(final String value, final Supplier<String> supplier) {
|
||||
if (value == null) {
|
||||
throw new IllegalArgumentException(supplier.get());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a String array consisting of the characters in the String.
|
||||
*
|
||||
* @param value input
|
||||
* @return character array
|
||||
*/
|
||||
static String[] chars(final String value) {
|
||||
/**
|
||||
* The other implementation of this could be using String's split method
|
||||
* String[] chars = value.split("")
|
||||
*/
|
||||
validate(value, () -> "'value' should be not null.");
|
||||
int length = value.length();
|
||||
String[] result = new String[length];
|
||||
for (int i = 0; i < length; i++) {
|
||||
result[i] = at(value, i).get();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,7 +6,6 @@ import java.util.Optional;
|
||||
|
||||
import static org.hamcrest.CoreMatchers.equalTo;
|
||||
import static org.hamcrest.collection.IsArrayContainingInOrder.arrayContaining;
|
||||
import static org.hamcrest.collection.IsArrayWithSize.emptyArray;
|
||||
import static org.junit.Assert.assertThat;
|
||||
import static strman.Strman.*;
|
||||
|
||||
@@ -58,4 +57,10 @@ public class StrmanTest {
|
||||
assertThat(between("[abc][def]", "{", "}"), arrayContaining("[abc][def]"));
|
||||
assertThat(between("", "{", "}"), arrayContaining(""));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void charsShouldReturnAllCharactersInString() throws Exception {
|
||||
final String title = "title";
|
||||
assertThat(chars(title), equalTo(new String[]{"t", "i", "t", "l", "e"}));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user