문제 풀이/프로그래머스 알고리즘

이상한 문자 만들기 // String.split(), Character.toUpperCase()

열심히 해 2024. 10. 10. 19:04

https://school.programmers.co.kr/learn/courses/30/lessons/12930

 

 

오답 : 

class Solution {
    public String solution(String s) {
        String answer = s;

        String[] words = answer.split(" ");
        
        StringBuilder stringBuilder = new StringBuilder();
        for (String word: words) {
            for (int i=0; i < word.length(); i++) {
                char ch = word.charAt(i);
                if (i % 2 == 0) {
                    stringBuilder.append(Character.toUpperCase(ch));
                } else {
                    stringBuilder.append(Character.toLowerCase(ch));
                }
            }
            stringBuilder.append(" ");
        }
        answer = stringBuilder.substring(0, stringBuilder.length()-1);

        return answer;
    }
}

 

정답 : 

class Solution {
    public String solution(String s) {
        String answer = s;

        String[] words = answer.split(" ", -1);
        
        StringBuilder stringBuilder = new StringBuilder();
        for (String word: words) {
            for (int i=0; i < word.length(); i++) {
                char ch = word.charAt(i);
                if (i % 2 == 0) {
                    stringBuilder.append(Character.toUpperCase(ch));
                } else {
                    stringBuilder.append(Character.toLowerCase(ch));
                }
            }
            stringBuilder.append(" ");
        }
        answer = stringBuilder.substring(0, stringBuilder.length()-1);

        return answer;
    }
}

 

 

 


 

 

 

String.split(String regex, int limit) : 문자열을 특정 구분자로 나누어 배열로 반환하는 메서드

 

public class Main {
    public static void main(String[] args) {
        String str = "apple,orange,banana";
        String[] result = str.split(",", 2);
        System.out.println(Arrays.toString(result));
    }
}

// [apple, orange,banana]

 

 

 

  • regex: 문자열을 나눌 기준이 되는 구분자. 정규 표현식으로 입력됩니다. 보통 공백 " " 또는 특정 문자 ",", "|" 등을 사용합니다.
  • limit: 문자열을 나눌 갯수를 지정하는 옵션입니다. -1을 지정하면 모든 구분자를 포함해 나눕니다. 양수인 경우 값의 -1한 횟수로 나누고 나머지 부분은 배열의 마지막에 포함됩니다.

    위 메서드를 해석하자면 "," 를 기준으로 문자열을 2 덩이로 (2-1 = 1회) 나눈다는 의미입니다.

 

 

 

 

Character.toUpperCase(char ch) : 단일 문자를 대문자로 변환하는 메서드

 

 

Character.toLowerCase(char ch) : 단일 문자를 소문자로 변환하는 메서드