나의 모양

[DailyCoding] 06 | letterCapitalize 본문

SEB/Daily Coding

[DailyCoding] 06 | letterCapitalize

kexon 2022. 7. 28. 20:53

✍🏻 Description

  • 문자열을 입력받아 문자열을 구성하는 각 단어의 첫 글자가 대문자인 문자열 리턴

📝 Flow

1. 문자열로 이루어진 단어를을 돌리면서 담아줄 배열 만들기
    - 단어 공백으로 구분 => .split();
2. 결과값 담을 변수 만들기
3. 단어 순회 => for
    - String.valueOf(), substring()
4. 각 단어 첫글자 대문자 => .toUpperCase()
5. 문자열 join
5. 문자열 리턴

🤯 Difficulty

  • 문자열을 읽어오는 것
  • 공백으로 구분된 단어 앞을 대문자로 만드는 것

🪆 Attempt

  • 단어 구분 → for문에서 문자열 반복 → 첫 글자 대문자
  • split한 문자열 join

📚 TIL

  • split()
    • 리턴: 문자열 → 문자열 배열
    • Parameters: regex - the delimiting regular expression
    • Returns: the array of strings computed by splitting this string around matches of the given regular expression
  • String.valueOf()
    • 리턴: 문자열
      • 전달받은 파라미터를 문자열로 변경
      • 전달받은 파라미터가 null일 때 문자열 “null” 반환
    // i번째의 단어에서
    // 배열의 첫번쨰 문자를 => .charAt(0)
    // 대문자로 => .toUpperCase()
    
    words[i] = String.valueOf(words[i].charAt(0)).toUpperCase();
  • substring
    • 선택한 문자열 두 개를 추출
    • 사용법
      • substring(시작위치) ⇒ 시작부터 끝까지 (오버로딩)
      • sudbstring(시작위치, 끝위치)
    • 주의점
      • 끝위치는 포함 안됨
  • String.join()
    • 리턴타입: 배열 → 문자열
    • 문자열 합쳐주는 메서드
    • 사용법
      • String.join(”구분자”, 배열명)
  • delimiter: 문자열을 토큰으로 분할하는 문자
  • 문자열 비교: .equal();

👩🏻‍💻 Implementation

if(str.length() == 0) return "";

String[] words = str.split(" ");
String result = "";

for(int i = 0; i < words.length; i++) {
    if(words[i].equals("")) continue;
    
    words[i] = String.valueOf(words[i].charAt(0)).toUpperCase()
		+ words[i].substring(1);
}

result = String.join(" ", words);
return result;

'SEB > Daily Coding' 카테고리의 다른 글

[DailyCoding] 08 | convertDoubleSpaceToSingle  (0) 2022.08.01
[DailyCoding] 07 | convertListToObject  (0) 2022.07.29
[DailyCoding] 05 | firstReverse  (0) 2022.07.27
[DailyCoding] 04 | firstCharacter  (0) 2022.07.26
[DailyCoding] 03 | powerOfTwo  (0) 2022.07.26
Comments