Skip to content

Commit b2644c5

Browse files
committed
BAEL-2144 sort string alphabetically
1 parent 913ec96 commit b2644c5

3 files changed

Lines changed: 86 additions & 0 deletions

File tree

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package com.baeldung.sorting.string.anagram;
2+
3+
import java.util.Arrays;
4+
5+
public class AnagramValidator {
6+
7+
public static boolean isValid(String text, String anagram) {
8+
text = prepare(text);
9+
anagram = prepare(anagram);
10+
11+
String sortedText = sort(text);
12+
String sortedAnagram = sort(anagram);
13+
14+
return sortedText.equals(sortedAnagram);
15+
}
16+
17+
private static String sort(String text) {
18+
char[] chars = prepare(text).toCharArray();
19+
20+
Arrays.sort(chars);
21+
return new String(chars);
22+
}
23+
24+
private static String prepare(String text) {
25+
return text.toLowerCase()
26+
.trim()
27+
.replaceAll("\\s+", "");
28+
}
29+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package org.baeldung.java.sorting.string;
2+
3+
4+
import static org.junit.jupiter.api.Assertions.assertTrue;
5+
import static org.junit.jupiter.api.Assertions.assertFalse;
6+
7+
import org.junit.jupiter.api.Test;
8+
9+
import com.baeldung.sorting.string.anagram.AnagramValidator;
10+
11+
class AnagramValidatorUnitTest {
12+
13+
@Test
14+
void givenValidAnagrams_whenSorted_thenEqual() {
15+
boolean isValidAnagram = AnagramValidator.isValid("Avida Dollars", "Salvador Dali");
16+
17+
assertTrue(isValidAnagram);
18+
}
19+
20+
@Test
21+
void givenNotValidAnagrams_whenSorted_thenNotEqual() {
22+
boolean isValidAnagram = AnagramValidator.isValid("abc", "def");
23+
24+
assertFalse(isValidAnagram);
25+
}
26+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package org.baeldung.java.sorting.string;
2+
3+
import java.util.Arrays;
4+
5+
import org.junit.jupiter.api.Test;
6+
7+
import static org.assertj.core.api.Assertions.assertThat;
8+
9+
class SortStringUnitTest {
10+
11+
@Test
12+
void givenString_whenSort_thenSorted() {
13+
String abcd = "bdca";
14+
char[] chars = abcd.toCharArray();
15+
16+
Arrays.sort(chars);
17+
String sorted = new String(chars);
18+
19+
assertThat(sorted).isEqualTo("abcd");
20+
}
21+
22+
@Test
23+
void givenString_whenSortJava8_thenSorted() {
24+
String sorted = "bdca".chars()
25+
.sorted()
26+
.collect(StringBuilder::new, StringBuilder::appendCodePoint, StringBuilder::append)
27+
.toString();
28+
29+
assertThat(sorted).isEqualTo("abcd");
30+
}
31+
}

0 commit comments

Comments
 (0)