이상한 문자 만들기 문제
https://programmers.co.kr/learn/courses/30/lessons/12930
문제설명
문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.
제한조건
- 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다.
- 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다.
입출력 예
s return "try hello world" "TrY HeLlO WoRlD"
class Solution {
public String solution(String s) {
String answer = "";
String[] arr = s.split(" ");
ArrayList<Character> list = new ArrayList<>();
for(String str : arr){
for(int i = 0; i < str.length(); i++){
if(i%2 == 0)
list.add(Character.toUpperCase(str.charAt(i)));
else
list.add(str.charAt(i));
}
list.add(' ');
}
StringBuilder sb = new StringBuilder();
for(int i = 0 ; i < list.size();i++){
if(list.get(i) == ' ')
sb.append(" ");
sb.append(list.get(i));
}
answer = sb.toString();
return answer;
}
}
class Solution {
public String solution(String s) {
String answer = "";
String[] arr = s.split("");
int index = 0; // 공백 이후 단어의 인덱스
for(int i = 0 ; i < arr.length; i++){
if(arr[i].equals(" "))
index = 0; // 공백 다음으로 나오는 단어의 시작 index가 0이기 위해
else if(index % 2 ==0){
arr[i] = arr[i].toUpperCase();
index++;
}
else{
arr[i] = arr[i].toLowerCase();
index++;
}
answer += arr[i];
}
return answer;
}
}
.toLowerCase()를 붙여줘야 한다.