-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathConvertStringToCamelCase.java
More file actions
30 lines (24 loc) · 929 Bytes
/
ConvertStringToCamelCase.java
File metadata and controls
30 lines (24 loc) · 929 Bytes
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
package com.smlnskgmail.jaman.codewarsjava.kyu6;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
// https://www.codewars.com/kata/517abf86da9663f1d2000003
public class ConvertStringToCamelCase {
private final String input;
public ConvertStringToCamelCase(String input) {
this.input = input;
}
public String solution() {
boolean isDashSeparator = input.contains("-");
String[] words = input.split(isDashSeparator ? "-" : "_");
return words.length == 0
? input
: words[0] + IntStream
.range(1, words.length)
.mapToObj(value -> {
String word = words[value];
char firstSymbol = word.charAt(0);
return Character.toUpperCase(firstSymbol) + word.substring(1);
})
.collect(Collectors.joining());
}
}