public class Solution {
public String solution(String s) {
StringBuilder sb = new StringBuilder();
// 공백을 기준으로 문자열을 단어로 나눕니다
String[] words = s.split(" ", -1); // -1은 빈 문자열도 유지하도록 설정합니다
// 단어마다 처리
for (int j = 0; j < words.length; j++) {
String word = words[j];
for (int i = 0; i < word.length(); i++) {
char ch = word.charAt(i);
if (Character.isLetter(ch)) {
if (i % 2 == 0) {
sb.append(Character.toUpperCase(ch));
} else {
sb.append(Character.toLowerCase(ch));
}
} else {
sb.append(ch); // 공백이나 특수 문자는 그대로 추가합니다
}
}
// 단어 사이에 공백 추가
if (j < words.length - 1) {
sb.append(" ");
}
}
return sb.toString();
}
}
- StringBuilder 객체 생성:
- 결과를 저장할 StringBuilder 객체 sb를 생성합니다. StringBuilder는 문자열을 효율적으로 추가하고 수정할 수 있는 가변(mutable) 클래스입니다.
- StringBuilder sb = new StringBuilder();
- 문자열을 공백을 기준으로 단어로 나누기:
- 입력 문자열 s를 공백을 기준으로 나눈 후, 각 단어를 배열 words에 저장합니다. -1은 빈 문자열도 유지하도록 설정합니다.
-
String[] words = s.split(" ", -1);
- 입력 문자열 s를 공백을 기준으로 나눈 후, 각 단어를 배열 words에 저장합니다. -1은 빈 문자열도 유지하도록 설정합니다.
words 배열에 저장된 각 단어(word)를 반복문을 통해 처리합니다.
각 단어의 문자를 순회하면서 짝수 인덱스(i % 2 == 0)에 있는 알파벳은 대문자로 변경하고, 홀수 인덱스에 있는 알파벳은 소문자로 변경하여 sb에 추가합니다.
알파벳이 아닌 공백이나 특수 문자는 그대로 sb에 추가합니다.
각 단어 사이에 공백을 추가하기 위해 j < words.length - 1 조건을 사용하여 마지막 단어 이후에는 공백을 추가하지 않습니다.
toUpperCase를 사용하여 짝수마다 알파벳을 대문자로 출력하였다.
toLowerCase를 사용하여 홀수마다 알파벳을 소문자로 출력하였다.
'(Java)코테연습' 카테고리의 다른 글
문자열끼리 크기 비교하는 경우 (0) | 2024.07.12 |
---|---|
각각의 배열에서 3개의 정수 합이 0이 되어야 하는경우 (0) | 2024.07.12 |
자판기 (0) | 2024.07.10 |
랜덤 닉네임 생성 (0) | 2024.07.10 |
(자바 코테연습) 최대공약수와 최고 공배수 (0) | 2024.07.10 |