일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Android
- androidstudio
- bitmap
- BOJ
- Canvas
- CS
- Database
- DBeaver
- DP
- Ecilpse
- Eclipse
- firebase
- git
- github
- GooglePlayServices
- gradle
- IDE
- IntelliJ
- java
- json
- kotlin
- level2
- linux
- mariadb
- MYSQL
- Paint
- permission
- python
- Sorting
- sourcetree
Archives
will come true
[프로그래머스/Level2] JadenCase 문자열 만들기 본문
728x90
문제
https://programmers.co.kr/learn/courses/30/lessons/12951?language=java
풀이
문장은 문자와 공백만으로만 이루어져있댔으나, 첫 문자가 숫자일 수 있고 공백이 연속으로 여러 개 있을 수도 있음. split("") 과 같이 문자열을 분리하면 "The tree" 와 같은 문자열은 {"T", "h", "e", " ", " ", " ", "t", "r", "e", "e"} 와 같은 String배열을 반환하고, split(" ")와 같이 공백을 기준으로 분리하면 {"The", " ", " ", " tree"} 와 같은 String배열이 반환된다.
- 전체 문자열을 소문자로 변환한다.
- 각 문자열의 문자를 하나씩 체크한 뒤, StringBuffer에 추가한다.
- 공백일 경우 => 그대로 추가, 이 뒤에 나오는 공백이 아닌 문자는 첫 번째 문자이다.
- 첫 번째 문자일 경우 => 대문자 변환 추가, 이 뒤에 나오는 문자는 첫번째 문자가 아니다.
- 첫 번째 문자가 아닐 경우 => 그대로 추가
- StringBuffer를 String타입으로 반환한다.
코드
1. toCharArray() 메서드로 char타입으로 분리하는 방법
class Solution {
public String solution(String s) {
StringBuffer sb = new StringBuffer(); // JadenCase 결과 문자열
boolean isFirst = true; // 첫번째 문자 여부
s = s.toLowerCase(); // 전체 소문자 변환
for (char ch : s.toCharArray()) {
if (ch == ' ') {
isFirst = true;
} else if (isFirst) {
ch = Character.toUpperCase(ch); // 대문자 변환
isFirst = false;
}
sb.append(ch); // 문자 추가
}
return sb.toString();
}
}
2. split() 메서드로 String타입으로 분리하는 방법
class Solution {
public String solution(String s) {
StringBuffer sb = new StringBuffer();
boolean isFirst = true;
String[] arr = s.toLowerCase().split("");
for (String str : arr) {
sb.append(isFirst ? str.toUpperCase() : str);
isFirst = str.equals(" ") ? true : false;
}
return sb.toString();
}
}
728x90
'Algorithm' 카테고리의 다른 글
[프로그래머스/Level2] 최솟값 만들기 (0) | 2022.01.13 |
---|---|
[프로그래머스/Level2] 피보나치 수 (0) | 2022.01.13 |
[프로그래머스/Level2] 행렬의 곱셈 (0) | 2022.01.12 |
[프로그래머스/Level2] N개의 최소공배수 (Java) (0) | 2022.01.10 |
[프로그래머스 / Level2] 주식 가격 (Java) (0) | 2021.12.28 |
Comments