-
[Java] - 이상한 문자 만들기 (12930)알고리즘/프로그래머스 2024. 2. 27. 09:56
📚 문제 - 12930
문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.
제한사항- 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다.
- 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다.
입출력 예
- "try hello world"는 세 단어 "try", "hello", "world"로 구성되어 있습니다. 각 단어의 짝수번째 문자를 대문자로, 홀수번째 문자를 소문자로 바꾸면 "TrY", "HeLlO", "WoRlD"입니다. 따라서 "TrY HeLlO WoRlD" 를 리턴합니다.
⌨️ 작성한 코드
class Solution { public String solution(String s) { // 주어진 문자열을 공백을 기준으로 분할하여 문자열 배열로 저장 String[] strArr = s.split(" ", -1); StringBuffer sb = new StringBuffer(); for(int i = 0; i < strArr.length; i++) { char[] charArr = strArr[i].toCharArray(); // 현재 단어를 문자 배열로 변환 for(int j = 0 ; j < charArr.length ; j++) { if(j % 2 == 0) // 짝수번째 문자는 대문자로 charArr[j] = Character.toUpperCase(charArr[j]); else // 홀수번째 문자는 소문자로 charArr[j] = Character.toLowerCase(charArr[j]); } if(i != strArr.length - 1) // 마지막이 아닌 경우, 공백 포함하여 결과 문자열에 추가 sb.append(new String(charArr) + " "); else // 마지막 단어인 경우, 공백 추가하지 않고 결과 문자열에 추가 sb.append(new String(charArr)); } return sb.toString(); } }
✅ 배운 점
- split(): 주어진 구분자를 기준으로 문자열을 분할하고, 분할된 부분을 문자열 배열에 저장하는 매서드
첫 번째 매개변수로는 구분자를 전달하고, 두 번째 매개변수는 분할된 문자열의 최대 개수를 지정
두 번째 매개변수에 -1을 전달하면, 분할된 결과에 빈 문자열도 포함시키도록 지정됨
일반적으로 이 값을 지정하지 않거나 양의 정수를 전달하면 빈 문자열이 생략됨String s = " hello world "; String[] strArr = s.split(" ", -1); // 배열 strArr는 ["", "", "hello", "", "world", "", ""]로 저장됨
- toCharArray(): 문자열을 문자 배열로 변환하는 메서드
String str = "Hello"; char[] charArray = str.toCharArray(); // 배열 charArray는 ['H', 'e', 'l', 'l', 'o']로 저장됨
- new String() 생성자와 toString() 메서드
- new String() 생성자: 주어진 문자 배열이나 다른 문자열을 이용하여 새로운 문자열 객체를 생성
주로 문자 배열을 문자열로 변환하거나, 문자열을 복제하여 새로운 문자열을 생성할 때 사용
만약 문자열을 문자 배열로 변환하고자 할 때는 new String(charArray)와 같이 사용가능 - toString() 메서드: 객체를 문자열로 변환하는 메서드
모든 자바 클래스는 Object 클래스를 상속하므로, toString() 메서드를 오버라이딩하여 해당 클래스의 객체를 문자열로 표현 가능
따라서 toString() 메서드는 객체 자체를 문자열로 변환하는 데 사용되고, new String() 생성자는 주어진 데이터를 가지고 새로운 문자열 객체를 생성하는 데 사용됩니다. 만약 문자 배열을 문자열로 변환하고자 할 때는 new String(charArray)를 사용하면 됩니다.
- new String() 생성자: 주어진 문자 배열이나 다른 문자열을 이용하여 새로운 문자열 객체를 생성
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[Java] - 가장 가까운 같은 글자 (142086) (HashMap) (0) 2024.02.28 [Java] - 시저암호 (12926) (0) 2024.02.28 [Java] - 최소직사각형 (86491) (0) 2024.02.27 [Java] - 크기가 작은 부분문자열 (131705) (0) 2024.02.27 [Java] - 크기가 작은 부분문자열 (147355) (0) 2024.02.26