Skip to content

Commit 9ef74e2

Browse files
TeicaMatea Pejčinović
andauthored
BAEL-5277 generate string of repeated characters (eugenp#11611)
* BAEL-5277 generate string of repeated characters * BAEL-5277 fixed test * BAEL-5277 fixing tests * removed public from class and methods, removed unnecessary test examples, extracted contants * renamed constants * renamed a test * fixed the string repeat test * removed public from class and method * modified the test * reset the java version * tests added * added apache dependency * removed repeat method for string * updated tests * fixed tests * added two additional tests * formatted code * renaming variables * 1.0.0 | FIX removed unnecessary annotation * removing EMPTY_STRING constant Co-authored-by: Matea Pejčinović <[email protected]>
1 parent 57cf5d5 commit 9ef74e2

File tree

2 files changed

+98
-0
lines changed

2 files changed

+98
-0
lines changed

core-java-modules/core-java-string-algorithms-3/pom.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,11 @@
2424
<artifactId>commons-validator</artifactId>
2525
<version>${validator.version}</version>
2626
</dependency>
27+
<dependency>
28+
<groupId>org.apache.commons</groupId>
29+
<artifactId>commons-lang3</artifactId>
30+
<version>${apache-commons-lang3.version}</version>
31+
</dependency>
2732
</dependencies>
2833

2934
<build>
@@ -51,6 +56,7 @@
5156
<properties>
5257
<guava.version>31.0.1-jre</guava.version>
5358
<validator.version>1.7</validator.version>
59+
<apache-commons-lang3.version>3.12.0</apache-commons-lang3.version>
5460
</properties>
5561

5662
</project>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
package com.baeldung.repeatedcharstring;
2+
3+
import org.apache.commons.lang3.RandomStringUtils;
4+
import org.apache.commons.lang3.StringUtils;
5+
import org.junit.jupiter.api.Test;
6+
7+
import java.util.Arrays;
8+
import java.util.Collections;
9+
import java.util.stream.Collectors;
10+
11+
import com.google.common.base.Joiner;
12+
import com.google.common.base.Strings;
13+
14+
import static java.util.stream.Stream.generate;
15+
import static org.junit.jupiter.api.Assertions.assertEquals;
16+
17+
class RepeatedCharacterStringUnitTest {
18+
19+
private static final String EXPECTED_STRING = "aaaaaaa";
20+
private static final int N = 7;
21+
22+
@Test
23+
void givenString_whenStringBuilderUsed_thenStringCreated() {
24+
StringBuilder builder = new StringBuilder(N);
25+
for (int i = 0; i < N; i++) {
26+
builder.append("a");
27+
}
28+
String newString = builder.toString();
29+
assertEquals(EXPECTED_STRING, newString);
30+
}
31+
32+
@Test
33+
void givenString_whenCharArrayUsed_thenStringCreated() {
34+
char[] charArray = new char[N];
35+
for (int i = 0; i < N; i++) {
36+
charArray[i] = 'a';
37+
}
38+
String newString = new String(charArray);
39+
assertEquals(EXPECTED_STRING, newString);
40+
}
41+
42+
@Test
43+
void givenString_whenApacheStringUtilsUsed_thenStringCreated() {
44+
char charToAppend = 'a';
45+
String newString = StringUtils.repeat(charToAppend, N);
46+
assertEquals(EXPECTED_STRING, newString);
47+
}
48+
49+
@Test
50+
void givenString_whenGuavaRepeatUsed_thenStringCreated() {
51+
String charToAppend = "a";
52+
String newString = Strings.repeat(charToAppend, N);
53+
assertEquals(EXPECTED_STRING, newString);
54+
}
55+
56+
@Test
57+
void givenString_whenArraysFillUsed_thenStringCreated() {
58+
char charToAppend = 'a';
59+
char[] charArray = new char[N];
60+
Arrays.fill(charArray, charToAppend);
61+
String newString = new String(charArray);
62+
assertEquals(EXPECTED_STRING, newString);
63+
}
64+
65+
@Test
66+
void givenString_whenGenerateAndJoiningUsed_thenStringCreated() {
67+
String charToAppend = "a";
68+
String newString = generate(() -> charToAppend).limit(N).collect(Collectors.joining());
69+
assertEquals(EXPECTED_STRING, newString);
70+
}
71+
72+
@Test
73+
void givenString_whenStringJoinUsed_thenStringCreated() {
74+
String charToAppend = "a";
75+
String newString = String.join("", Collections.nCopies(N, charToAppend));
76+
assertEquals(EXPECTED_STRING, newString);
77+
}
78+
79+
@Test
80+
void givenString_whenGuavaJoinerUsed_thenStringCreated() {
81+
String charToAppend = "a";
82+
String newString = Joiner.on("").join(Collections.nCopies(N, charToAppend));
83+
assertEquals(EXPECTED_STRING, newString);
84+
}
85+
86+
@Test
87+
void givenString_whenRandomStringUtilsUsed_thenStringCreated() {
88+
String charToAppend = "a";
89+
String newString = RandomStringUtils.random(N, charToAppend);
90+
assertEquals(EXPECTED_STRING, newString);
91+
}
92+
}

0 commit comments

Comments
 (0)