-
Notifications
You must be signed in to change notification settings - Fork 9
/
ReverseWords.java
48 lines (40 loc) · 1.38 KB
/
ReverseWords.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
package main.java.kyu6;
/**
* 6 kyu - Stop gninnipS My sdroW!
*
* https://www.codewars.com/kata/5264d2b162488dc400000001
*
* Details:
*
* Write a function that takes in a string of one or more words, and returns the same string, but
* with all five or more letter words reversed (Just like the name of this Kata). Strings passed
* in will consist of only letters and spaces. Spaces will be included only when more than one
* word is present.
*
* Examples: spinWords( "Hey fellow warriors" ) => returns "Hey wollef sroirraw" spinWords
* ( "This is a test") => returns "This is a test" spinWords( "This is another test" )
* => returns "This is rehtona test"
*
*/
import org.junit.Test;
import static org.junit.Assert.assertEquals;
public class ReverseWords {
public String spinWords(String sentence) {
final String[] words = sentence.split("\\s+");
final StringBuilder sb = new StringBuilder();
for (String word : words) {
final StringBuilder helper = new StringBuilder(word);
if (helper.length() >= 5) {
helper.reverse();
}
sb.append(helper);
sb.append(" ");
}
return new String(sb).trim();
}
@Test
public void test() {
assertEquals("emocleW", spinWords("Welcome"));
assertEquals("Hey wollef sroirraw", spinWords("Hey fellow warriors"));
}
}