아스키코드
언젠가 쓸 일이 있으니 소문자 a-z 부터 대문자 A-Z까지는 외워두자.
대문자 알파벳 : 65~90 까지 26개
소문자 알파벳 : 97~122 까지 26개
charCodeAt(), String.fromCharCode()
// 문자의 아스키코드 체크하는 법
'A'.charCodeAt() // 65
// 반대로 아스키코드로 문자 체크하는 법
String.fromCharCode(65) // 'A'
replace 로 문자열 바꾸기 + 정규표현식
replace(a,b) -> a를 b로 바꾼다.
정규표현식을 이용하면 /A/를 #으로 바꾼다. 다만, A를 만나면 #으로 바꾸고 아예 끝나버리기 때문에 문자열 전체에서 A를 #으로 바꾸려면 g(global)를 붙여준다.
function solution(str) {
let answer = str;
str = str.replace('/A/g', '#');
return answer
}
console.log(solution("BANANA"));
정규표현식을 이용하면 문자열에서 알파벳들만 걸러낼 수 있다.
function solution(str) {
const answer = s.replace("/[^a-z]/g","")
return answer
}
const s = 'ab ;c, dA'
console.log(solution(s)) // abcd
문자열에서 숫자만 걸러내기 + 028 과 같은 문자열 28숫자로 나타내기 원리
문자열이 있을 때 숫자만 걸러낼 수 있는 방법
isNaN : 문자열이 NaN(숫자가아니면) true 숫자이면 false
function solution(str) {
let numberStr = "";
for(let i=0; i<str.length; i++){
if(!isNaN(str[i])) numberStr+=str[i]
}
}
const s = 'a0b1 ;c, dA23'
console.log(solution(s)) // "0123"
여기서 0123을 123으로 바꾸려면 parseInt, Number, *1 을 해주는 여러가지 내장함수들을 사용했었다. 근데 직접 구현해보자.
어떤 숫자이던 일의자리 숫자 전까지 10을 곱하고 일의자리만 더해주면 그 숫자가 나온다.
즉 0123 이면 10*0+0 = 0, 1*10+2, 12*10+3 이런식으로 표현할 수 있다.
function solution(str) {
let numberStr = 0;
for(let i=0; i<str.length; i++){
if(!isNaN(str[i])) numberStr = numberStr*10 + Number(str[i])
}
}
const s = 'a0b1 ;c, dA23'
console.log(solution(s)) // "123"
'알고리즘, 자료구조 > IDEA note' 카테고리의 다른 글
어느 것과 더 가까운지에 대해서 (0) | 2025.05.12 |
---|---|
Number.MAX_SAFE_INTEGER, Number.MIN_SAFE_INTEGER (최소,최대) (0) | 2025.05.12 |