-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathreverse-words.java
47 lines (36 loc) · 1.1 KB
/
reverse-words.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
public class Kata {
public static String reverseWords(final String original) {
if (original == " " || original == null) {
return original;
}
boolean allSpace = true;
for (char letter : original.toCharArray()) {
if (letter != ' ') {
allSpace = false;
break;
}
}
if (allSpace) {
return original;
}
String[] words = original.split(" ");
StringBuilder reversedSentence = new StringBuilder();
for (int i = 0; i < words.length; i++) {
String word = words[i];
reversedSentence.append(reverse(word));
if (i != words.length - 1) {
reversedSentence.append(" ");
}
}
return reversedSentence.toString();
}
public static String reverse(String word) {
char[] letters = word.toCharArray();
for (int i = 0; i < word.length() / 2; i++) {
char temp = letters[i];
letters[i] = letters[word.length() - 1 - i];
letters[word.length() - 1 - i] = temp;
}
return new String(letters);
}
}