앞글자를 대문자로
1. split()
String result = new String();
if (str.length() == 0) {
result = "";
}
String[] words = str.split(" ");
for (int i = 0; i < words.length; i++) {
words[i] = String.valueOf(words[i].charAt(0)).toUpperCase() + words[i].substring(1);
}
result = String.join(" ", words);
System.out.println(result);
2. StringBuilder
StringBuilder sb = new StringBuilder();
String result = new String();
if (str.trim().isEmpty()) {
return "";
}
boolean capitalize = true;
for (char c : str.toCharArray()) {
if (Character.isWhitespace(c)) {
capitalize = true;
} else if (capitalize) {
c = Character.toUpperCase(c);
capitalize = false;
}
sb.append(c);
}
result = sb.toString();
System.out.println(result);
- 위 경우 공백으로만 이루어진 문자열의 처리가 불가능 하므로 edgecase로 처리해줌
-trim()
메서드를 사용해 앞뒤의 공백을 제거할 수 있음
3. ArrayList
List<String> wordList = new ArrayList<>();
String result = new String();
if (str.length() == 0 || str.trim().isEmpty()) {
return "";
}
for (int i = 0; i < str.length(); i++) {
wordList.add(String.valueOf(str.charAt(i)));
}
wordList.set(0, wordList.get(0).toUpperCase());
for (int i = 1; i < wordList.size(); i++) {
if (wordList.get(i - 1).equals(" ")) {
wordList.set(i, wordList.get(i).toUpperCase());
}
}
for (String word : wordList) {
result += word;
}
System.out.println(result);
- 위 경우 빈 문자열이나 공백으로만 이루어진 문자열의 처리가 불가능하므로 edgecase로 처리함