Merge pull request #5100 from den314/master
BAEL-2144 Sorting a String alphabetically
This commit is contained in:
commit
4ba8e227e5
|
@ -0,0 +1,29 @@
|
|||
package com.baeldung.string.sorting;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
public class AnagramValidator {
|
||||
|
||||
public static boolean isValid(String text, String anagram) {
|
||||
text = prepare(text);
|
||||
anagram = prepare(anagram);
|
||||
|
||||
String sortedText = sort(text);
|
||||
String sortedAnagram = sort(anagram);
|
||||
|
||||
return sortedText.equals(sortedAnagram);
|
||||
}
|
||||
|
||||
private static String sort(String text) {
|
||||
char[] chars = prepare(text).toCharArray();
|
||||
|
||||
Arrays.sort(chars);
|
||||
return new String(chars);
|
||||
}
|
||||
|
||||
private static String prepare(String text) {
|
||||
return text.toLowerCase()
|
||||
.trim()
|
||||
.replaceAll("\\s+", "");
|
||||
}
|
||||
}
|
|
@ -0,0 +1,26 @@
|
|||
package com.baeldung.string.sorting;
|
||||
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import com.baeldung.string.sorting.AnagramValidator;
|
||||
|
||||
class AnagramValidatorUnitTest {
|
||||
|
||||
@Test
|
||||
void givenValidAnagrams_whenSorted_thenEqual() {
|
||||
boolean isValidAnagram = AnagramValidator.isValid("Avida Dollars", "Salvador Dali");
|
||||
|
||||
assertTrue(isValidAnagram);
|
||||
}
|
||||
|
||||
@Test
|
||||
void givenNotValidAnagrams_whenSorted_thenNotEqual() {
|
||||
boolean isValidAnagram = AnagramValidator.isValid("abc", "def");
|
||||
|
||||
assertFalse(isValidAnagram);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
package com.baeldung.string.sorting;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
class SortStringUnitTest {
|
||||
|
||||
@Test
|
||||
void givenString_whenSort_thenSorted() {
|
||||
String abcd = "bdca";
|
||||
char[] chars = abcd.toCharArray();
|
||||
|
||||
Arrays.sort(chars);
|
||||
String sorted = new String(chars);
|
||||
|
||||
assertThat(sorted).isEqualTo("abcd");
|
||||
}
|
||||
|
||||
@Test
|
||||
void givenString_whenSortJava8_thenSorted() {
|
||||
String sorted = "bdca".chars()
|
||||
.sorted()
|
||||
.collect(StringBuilder::new, StringBuilder::appendCodePoint, StringBuilder::append)
|
||||
.toString();
|
||||
|
||||
assertThat(sorted).isEqualTo("abcd");
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue