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.PrintWriter;
import java.io.StringWriter; import java.io.StringWriter;
import java.util.Arrays;
import java.util.Collection;
import java.util.Vector; import java.util.Vector;
import java.util.stream.Collectors;


import org.apache.tools.ant.BuildException; import org.apache.tools.ant.BuildException;


@@ -270,4 +273,26 @@ public final class StringUtils {
return string; 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; 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.assertEquals;
import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue; 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 * Test for StringUtils
*/ */
@@ -33,7 +35,7 @@ public class StringUtilsTest {
@Test @Test
public void testSplit(){ public void testSplit(){
final String data = "a,b,,"; final String data = "a,b,,";
Vector res = StringUtils.split(data, ',');
Vector<String> res = StringUtils.split(data, ',');
assertEquals(4, res.size()); assertEquals(4, res.size());
assertEquals("a", res.elementAt(0)); assertEquals("a", res.elementAt(0));
assertEquals("b", res.elementAt(1)); assertEquals("b", res.elementAt(1));
@@ -44,7 +46,7 @@ public class StringUtilsTest {
@Test @Test
public void testSplitLines(){ public void testSplitLines(){
final String data = "a\r\nb\nc\nd\ne"; 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(5, res.size());
assertEquals("a\r", res.elementAt(0)); assertEquals("a\r", res.elementAt(0));
assertEquals("b", res.elementAt(1)); assertEquals("b", res.elementAt(1));
@@ -53,7 +55,8 @@ public class StringUtilsTest {
assertEquals("e", res.elementAt(4)); assertEquals("e", res.elementAt(4));
} }
@Test
@SuppressWarnings("deprecation")
@Test
public void testReplace() { public void testReplace() {
final String data = "abcabcabca"; final String data = "abcabcabca";
String res = StringUtils.replace(data, "a", ""); String res = StringUtils.replace(data, "a", "");
@@ -166,5 +169,26 @@ public class StringUtilsTest {
prefix + name + suffix, prefix + name + suffix,
StringUtils.removePrefix(input, "bla") 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