package com.levelup.java.string;
import static org.junit.Assert.assertEquals;
import org.apache.commons.lang3.StringUtils;
import org.junit.Test;
/**
* This java example will demonstrate reversing a string
*
* @author Justin Musgrove
* @see <a
* href='http://www.leveluplunch.com/java/examples/reverse-string/'>Reverse
* string</a>
*
*/
public class ReverseAString {
private static final String PHRASE = "The dog barked at the mail man";
private static final String PHRASE_REVERSE = "nam liam eht ta dekrab god ehT";
@Test
public void reverse_a_string_with_java() {
StringBuffer buffer = new StringBuffer(PHRASE);
String reversedString = buffer.reverse().toString();
assertEquals(PHRASE_REVERSE, reversedString);
}
public String reverseString(String s) {
if (s.length() == 0)
return s;
return reverseString(s.substring(1)) + s.charAt(0);
}
@Test
public void reverse_a_string_with_recurrsion() {
String reversedString = reverseString(PHRASE);
assertEquals(PHRASE_REVERSE, reversedString);
}
@Test
public void reverse_string_for_loop() {
StringBuffer reverse = new StringBuffer();
for (int i = PHRASE.length() - 1; i >= 0; i--) {
reverse.append(PHRASE.charAt(i));
}
assertEquals(PHRASE_REVERSE, reverse.toString());
}
@Test
public void reverse_a_string_with_apache_commons() {
String reversedString = StringUtils.reverse(PHRASE);
assertEquals(PHRASE_REVERSE, reversedString);
}
}