이건 진짜 맨 끝 공백 만든 사람 때문에 시간 오래 걸림...
원래 문자열 / 맨 끝 문자열 따로 처리 해 주면 결과값이 같은데도 통과가 안 되어서,
굳이 전체에 " " 를 해주고, 맨 끝 문자열을 따로 처리 해 줌.
class Solution {
public String solution(String s) {
//s = "3people unFollowed me"
String answer = "";
StringBuilder sb = new StringBuilder();
String [] arr = s.toLowerCase().split(" "); //공백 split 해서 배열로 만들면서 소문자로 바꿈
for(int i = 0; i < arr.length; i++){
String temp = arr[i];
//보통 문자열
if(temp.length() != 0){
sb.append(temp.substring(0,1).toUpperCase());
sb.append(temp.substring(1,temp.length()));
sb.append(" ");
}else if(temp.length() == 0){
//만약에 길이가 0이면 공백을 추가해줘야 함
sb.append(" ");
}
}
if(!String.valueOf(s.charAt(s.length()-1)).equals(" ")){
//원래 받아온 문자열 맨 끝에 공백이 있으면 맨 끝 공백 처리 안 함
sb.deleteCharAt(sb.lastIndexOf(" "));
}
//System.out.println(sb.toString());
answer = sb.toString();
return answer;
}
}
오... 남의 코드...
class Solution { public String solution(String s) { String answer = ""; String[] sp = s.toLowerCase().split(""); boolean flag = true; for(String ss : sp) { answer += flag ? ss.toUpperCase() : ss; flag = ss.equals(" ") ? true : false; } return answer; } }
똑똑박사!
댓글
댓글 쓰기