Browse Source

StringUtils.join: new method

master
Jan Matrne 9 years ago
parent
commit
75f1237400
2 changed files with 57 additions and 8 deletions
  1. +25
    -0
      src/main/org/apache/tools/ant/util/StringUtils.java
  2. +32
    -8
      src/tests/junit/org/apache/tools/ant/util/StringUtilsTest.java

+ 25
- 0
src/main/org/apache/tools/ant/util/StringUtils.java View File

@@ -19,7 +19,10 @@ package org.apache.tools.ant.util;

import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.Arrays;
import java.util.Collection;
import java.util.Vector;
import java.util.stream.Collectors;

import org.apache.tools.ant.BuildException;

@@ -270,4 +273,26 @@ public final class StringUtils {
return string;
}
}
/**
* Joins the string representation of the elements of a collection to
* a joined string with a given separator.
* @param collection Collection of the data to be joined (may be null)
* @param separator Separator between elements (may be null)
* @return the joined string
*/
public static String join(Collection<?> collection, CharSequence separator) {
return collection.stream().map( o -> String.valueOf(o) ).collect(Collectors.joining(separator));
}

/**
* Joins the string representation of the elements of an array to
* a joined string with a given separator.
* @param array Array of the data to be joined (may be null)
* @param separator Separator between elements (may be null)
* @return the joined string
*/
public static String join(Object[] array, CharSequence separator) {
return join(Arrays.asList(array), separator);
}
}

+ 32
- 8
src/tests/junit/org/apache/tools/ant/util/StringUtilsTest.java View File

@@ -17,14 +17,16 @@
*/
package org.apache.tools.ant.util;
import java.util.Vector;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import java.util.Arrays;
import java.util.Collection;
import java.util.Vector;
import org.junit.Test;
/**
* Test for StringUtils
*/
@@ -33,7 +35,7 @@ public class StringUtilsTest {
@Test
public void testSplit(){
final String data = "a,b,,";
Vector res = StringUtils.split(data, ',');
Vector<String> res = StringUtils.split(data, ',');
assertEquals(4, res.size());
assertEquals("a", res.elementAt(0));
assertEquals("b", res.elementAt(1));
@@ -44,7 +46,7 @@ public class StringUtilsTest {
@Test
public void testSplitLines(){
final String data = "a\r\nb\nc\nd\ne";
Vector res = StringUtils.lineSplit(data);
Vector<String> res = StringUtils.lineSplit(data);
assertEquals(5, res.size());
assertEquals("a\r", res.elementAt(0));
assertEquals("b", res.elementAt(1));
@@ -53,7 +55,8 @@ public class StringUtilsTest {
assertEquals("e", res.elementAt(4));
}
@Test
@SuppressWarnings("deprecation")
@Test
public void testReplace() {
final String data = "abcabcabca";
String res = StringUtils.replace(data, "a", "");
@@ -166,5 +169,26 @@ public class StringUtilsTest {
prefix + name + suffix,
StringUtils.removePrefix(input, "bla")
);
}
}
@Test
public void testJoin() {
assertEquals("a, b, c", StringUtils.join(Arrays.asList("a", "b", "c"), ", "));
}
@Test
public void testJoinEmptyArray() {
assertEquals("", StringUtils.join(new String[]{}, ", "));
}
@Test
public void testJoinNullArray() {
assertEquals("", StringUtils.join((Collection<String>)null, ", "));
}
@Test
public void testJoinNullSeparator() {
assertEquals("abc", StringUtils.join(Arrays.asList("a", "b", "c"), null));
}
}

Loading…
Cancel
Save