코딩테스트 연습 - 이상한 문자 만들기 | 프로그래머스 스쿨
class Solution {
public String solution(String s) {
String answer = "";
String[] an = s.split(" ");
for(int j=0;j<an.length;j++){
String str = an[j];
for(int i=1;i<str.length()+1;i++){
char ch = str.charAt(i-1);
if(i%2==0){
answer += Character.toLowerCase(ch);
}
else {
answer += Character.toUpperCase(ch);
}
}
if(j <an.length-1){
answer += " ";
}
}
return answer;
}
}
처음에 이렇게 짰는데, 공백이 두개이거나 맨 앞에 공백이 있는걸 고려해야 된다더라..(보니까 나랑 비슷하게 split이용해서 짠 사람들 전부 같은 문제를 겪고 있었다.)
그러니까 공백이 두개가 되면 i로 설정해놓은 인덱스가 밀리고 an 배열에 저장되는게 달라서 그런다 했다.
계속 기억하자... 문자열 바꿀땐 StringBuilder 세번째 보는데 잘 인지가 안된다.
class Solution {
public String solution(String s) {
StringBuilder answer = new StringBuilder();
int index=0;
for(int i = 0; i<s.length();i++){
char ch = s.charAt(i);
if(ch==' ') {
answer.append(ch);
index=0;
} else {
if(index%2==0){
answer.append(Character.toUpperCase(ch));
} else {
answer.append(Character.toLowerCase(ch));
}
index++;
}
}
return answer.toString();
}
}