Skip to content

Commit 5ba5b60

Browse files
gwidelecheyne
authored andcommitted
BAEL-2368 convert array to string and back (eugenp#5689)
* BAEL-2368 convert string array to string * BAEL-2368 Convert array to string code * BAEL-2368 Change package * Fix for test
1 parent 0ec5d24 commit 5ba5b60

File tree

1 file changed

+136
-0
lines changed

1 file changed

+136
-0
lines changed
Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
package org.baeldung.convertarraytostring;
2+
3+
import java.util.Arrays;
4+
import java.util.List;
5+
import java.util.stream.Collectors;
6+
7+
import org.apache.commons.lang3.StringUtils;
8+
import org.junit.Test;
9+
10+
import com.google.common.base.Joiner;
11+
import com.google.common.base.Splitter;
12+
13+
import static org.hamcrest.CoreMatchers.instanceOf;
14+
import static org.hamcrest.MatcherAssert.assertThat;
15+
import static org.junit.Assert.assertEquals;
16+
17+
public class ArrayToStringUnitTest {
18+
19+
// convert with Java
20+
21+
@Test
22+
public void givenAStringArray_whenConvertBeforeJava8_thenReturnString() {
23+
24+
String[] strArray = { "Convert", "Array", "With", "Java" };
25+
StringBuilder stringBuilder = new StringBuilder();
26+
27+
for (int i = 0; i < strArray.length; i++) {
28+
stringBuilder.append(strArray[i]);
29+
}
30+
String joinedString = stringBuilder.toString();
31+
32+
assertThat(joinedString, instanceOf(String.class));
33+
assertEquals("ConvertArrayWithJava", joinedString);
34+
}
35+
36+
@Test
37+
public void givenAString_whenConvertBeforeJava8_thenReturnStringArray() {
38+
39+
String input = "lorem ipsum dolor sit amet";
40+
String[] strArray = input.split(" ");
41+
42+
assertThat(strArray, instanceOf(String[].class));
43+
assertEquals(5, strArray.length);
44+
45+
input = "loremipsum";
46+
strArray = input.split("");
47+
assertThat(strArray, instanceOf(String[].class));
48+
assertEquals(10, strArray.length);
49+
}
50+
51+
@Test
52+
public void givenAnIntArray_whenConvertBeforeJava8_thenReturnString() {
53+
54+
int[] strArray = { 1, 2, 3, 4, 5 };
55+
StringBuilder stringBuilder = new StringBuilder();
56+
57+
for (int i = 0; i < strArray.length; i++) {
58+
stringBuilder.append(Integer.valueOf(strArray[i]));
59+
}
60+
String joinedString = stringBuilder.toString();
61+
62+
assertThat(joinedString, instanceOf(String.class));
63+
assertEquals("12345", joinedString);
64+
}
65+
66+
// convert with Java Stream API
67+
68+
@Test
69+
public void givenAStringArray_whenConvertWithJavaStream_thenReturnString() {
70+
71+
String[] strArray = { "Convert", "With", "Java", "Streams" };
72+
String joinedString = Arrays.stream(strArray)
73+
.collect(Collectors.joining());
74+
assertThat(joinedString, instanceOf(String.class));
75+
assertEquals("ConvertWithJavaStreams", joinedString);
76+
77+
joinedString = Arrays.stream(strArray)
78+
.collect(Collectors.joining(","));
79+
assertThat(joinedString, instanceOf(String.class));
80+
assertEquals("Convert,With,Java,Streams", joinedString);
81+
}
82+
83+
84+
// convert with Apache Commons
85+
86+
@Test
87+
public void givenAStringArray_whenConvertWithApacheCommons_thenReturnString() {
88+
89+
String[] strArray = { "Convert", "With", "Apache", "Commons" };
90+
String joinedString = StringUtils.join(strArray);
91+
92+
assertThat(joinedString, instanceOf(String.class));
93+
assertEquals("ConvertWithApacheCommons", joinedString);
94+
}
95+
96+
@Test
97+
public void givenAString_whenConvertWithApacheCommons_thenReturnStringArray() {
98+
99+
String input = "lorem ipsum dolor sit amet";
100+
String[] strArray = StringUtils.split(input, " ");
101+
102+
assertThat(strArray, instanceOf(String[].class));
103+
assertEquals(5, strArray.length);
104+
}
105+
106+
107+
// convert with Guava
108+
109+
@Test
110+
public void givenAStringArray_whenConvertWithGuava_thenReturnString() {
111+
112+
String[] strArray = { "Convert", "With", "Guava", null };
113+
String joinedString = Joiner.on("")
114+
.skipNulls()
115+
.join(strArray);
116+
117+
assertThat(joinedString, instanceOf(String.class));
118+
assertEquals("ConvertWithGuava", joinedString);
119+
}
120+
121+
122+
@Test
123+
public void givenAString_whenConvertWithGuava_thenReturnStringArray() {
124+
125+
String input = "lorem ipsum dolor sit amet";
126+
127+
List<String> resultList = Splitter.on(' ')
128+
.trimResults()
129+
.omitEmptyStrings()
130+
.splitToList(input);
131+
String[] strArray = resultList.toArray(new String[0]);
132+
133+
assertThat(strArray, instanceOf(String[].class));
134+
assertEquals(5, strArray.length);
135+
}
136+
}

0 commit comments

Comments
 (0)