본문 바로가기
2. 우당탕탕 개발자/2-1. 공부기록

2021.7.26 TIL 대문자 -> 소문자 치환, 중간 문자 출력

by Little Monkey 2021. 7. 26.
반응형

문제) 대문자 -> 소문자로, 소문자 -> 대문자로

 

function change(str) {
  let answer;
  // code here;
  return answer;
};

 

 

해답 1)

 

function change(str) {
  let answer = '';

  for (let el of str) {
    if(el === el.toUpperCase()) {
      answer += el.toLowerCase();
    } else {
      answer += el.toUpperCase();
    }
  };  

  return answer;
};

 

 

해답 2) 아스키코드 이용

대문자 65 ~ 92, 소문자 97 ~ 122 인 것에서 착안.

'A'.charCodeAt()은 65, 'a'.charCodeAt()은 97 즉, 차가 32임을 이용한다.

 

function change(str) {
  let answer = '';

  for (let el of str) {
    let num = el.charCodeAt();
    if (num >= 65 && num <= 92) {
      answer += String.fromCharCode(num + 32);
    } else {
      answer += String.fromCharCode(num - 32);
    }  
  }; 

  return answer;
};

 


 

문제 ) 중간 글자를 찾아라.

'study'는 'u'를, 'good'은 'oo'를 반환하는 문제.

 

function findMiddle(str) {
  let answer;
  // code here;
  return answer;
};

 

 

해답 )

function findMiddle(str) {
  let answer;
  let mid = Math.floor(str.length/2);
  
  if(str.length % 2) {
    answer = str.substring(mid, mid + 1);
    // or str.substr(mid, 1);
    // or str[mid]
  } else {
   answer = str.substring(mid - 1, mid + 1);
    // or str.substr(mid - 1, 2);
    // or str[mid - 1] + str[mid];
  };
  
  return answer;
};
반응형

댓글