문자와 숫자가 섞여있는 문자열이 주어지면 그 중 숫자만 추출하여 그 순서대로 자연수를 만 듭니다.
만약 “tge0a1h205er”에서 숫자만 추출하면 0, 1, 2, 0, 5이고 이것을 자연수를 만들면 1205 이 됩니다.
추출하여 만들어지는 자연수는 100,000,000을 넘지 않습니다.
첫 줄에 숫자가 썩인 문자열이 주어집니다. 문자열의 길이는 50을 넘지 않습니다.
첫 줄에 자연수를 출력합니다.
▣ 입력예제 1
▣ 출력예제 1
function solution(s) {
let answer = 0;
let str = s.replace(/[^0-9]/g, "");
let num = parseInt(str);
answer = num;
return answer;
}
let str = "g0en2T0s8eSoft";
console.log(solution(str));
function solution(s) {
// 0. 반환해야 하는 answer의 초기값을 0으로 할당한다.
let answer = 0;
// 1. 인자로 받은 문자열에서 정규식을 사용하여 숫자만 추출한다.
let str = s.replace(/[^0-9]/g, "");
console.log(s.replace(/[^0-9]/g, "")); // 0208
// 2. 추출한 숫자를 자연수로 변환한다.
let num = parseInt(str);
console.log(parseInt(str)); // 208
// 3. num을 answer에 할당한다.
answer = num;
// 4. answer를 반환한다.
return answer;
}
let str = "g0en2T0s8eSoft";
console.log(solution(str));
function solution(s) {
let answer = "";
for (let x of s) {
if (!isNaN(x)) {
answer += x; // 0208
}
}
return Number.parseInt(answer); // 208
}
let str = "g0en2T0s8eSoft";
console.log(solution(str));
parseInt()
를 사용하지 않았을 때
function solution(s) {
let answer = 0;
for (let x of s) {
if (!isNaN(x)) {
answer += x; // 0208
}
}
return Number(answer); // 208
}
let str = "g0en2T0s8eSoft";
console.log(solution(str));
parseInt
parseInt()
함수는 문자열 인자를 파싱하여 특정 진수(수의 진법 체계에서 기준이 되는 값)의 정수를 반환합니다.Example
function roughScale(x, base) {
const parsed = parseInt(x, base);
if (isNaN(parsed)) {
return 0;
}
return parsed * 100;
}
console.log(roughScale(" 0xF", 16));
// expected output: 1500
console.log(roughScale("321", 2));
// expected output: 0
isNaN()
isNaN()
함수는 어떤 값이 NaN인지 판별합니다. isNaN 함수는 몇몇 혼란스러운 케이스을 가지고 있으므로, ECMAScript 2015에서 추가한 Number.isNaN()
으로 바꾸는 편이 좋을 수도 있습니다.Example
function milliseconds(x) {
if (isNaN(x)) {
return "Not a Number!";
}
return x * 1000;
}
console.log(milliseconds("100F"));
// expected output: "Not a Number!"
console.log(milliseconds("0.0314E+2"));
// expected output: 3140