코딩테스트 연습
🟡언어 : Javascript
문제 설명
문자열 str이 주어질 때, str을 출력하는 코드를 작성해 보세요.
1 ≤ str의 길이 ≤ 1,000,000
str에는 공백이 없으며, 첫째 줄에 한 줄로만 주어집니다.
입력 #1
HelloWorld!
출력 #1
HelloWorld!
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
let input = [];
rl.on('line', function (line) {
input += line; //여러줄 입력 하나의 문자열로 합침
}).on('close',function(){
const str = input.trim(); //양쪽 공백제거
if (str.length >= 1 && str.length <= 1000000) {
const replacedStr = str.replace(/ /g, ''); //공백을 빈값으로 바꾸어 제거
console.log(replacedStr);
}
});
문자열 공백제거 (replace,trim)
var a = "가 나 다 라 마 바 사 "
a.replace(" ","")
// 결과 : "가나 다 라 마 바 사 "
a.replace(/ /g,"")
// 결과 : "가나다라마바사"
⭐ replace 를 이용하면 공백을 빈값으로 바꾸어 제거하는 것과 같은 효과
⭐ 다만, 문자열의 모든 공백을 제거하기 위해선 정규식을 사용
⭐ 정규식에서 / /사이의 값을 replace의 두번째 인자값으로 교체가 가능하며, 뒤에붙는 g는 문자열의 모든 / / 사이의 값을 바꿔줌
var b = "A가a나A다a"
b.replace(/a/g,"")
// 결과 : "A가나A다"
b.replace(/a/gi,"")
// 결과 : "가나다"
var a = " 가 나 다 라 마 "
a.trim()
// 결과 : "가 나 다 라 마"
⭐ replace는 문자를 교체하는것이기 때문에 공백이 아니라도 가능
⭐ 위와같이 a라는 문자를 공백으로 교체를 하기위해 정규식을 사용하였는데, g만 사용하면 같은 문자라도 대소문자를 가림
=> 따라서, i 옵션을 주어 대소문자를 모두 포함시킬 수 있음.
문자열 합치기 (+, concat, join)
문자열을 연결하거나 붙이기 : "+" 연산자, concat() 함수
배열의 문자열을 합치기 : join() 함수
- 문자열을 합칠 때는 일반적으로 "+" 연산자를 많이 사용
- "+" 연산자가 concat() 함수보다 조금 더 성능이 좋은 걸로 알려져 있음
var str = 'Java' + 'Script';
// 결과 : 'JavaScript'
var str = 'JavaScript';
str += ' ';
str += 'Developer';
// 결과 : 'JavaScript Developer'
⭐ 문자열 변수를 합칠때도 "+" 연산자 사용 (str1 + str2 + str3)
⭐ 문자열을 연속으로 합칠 때는 "+=" 연산자 사용 (동일 문법)
var str1 = 'Java';
var str2 = 'Script';
var str3 = ' ';
var str4 = 'Developer';
var res = str1.concat(str2, str3, str4);
// 결과 : 'JavaScript Developer'
⭐ concat() 함수의 인자는 1개 이상 입력해야 하며, 입력한 인자의 개수만큼 문자열을 합침
var res = ''.concat('JavaScript', ' ', 'Developer');
// 결과 : 'JavaScript Developer'
⭐ 빈 문자('')에서 concat() 함수 사용 가능
var langs = ['HTML', 'CSS', 'JavaScript'];
var res = langs.join();
// 결과 : 'HTML,CSS,JavaScript'
⭐ join() 함수에 빈 문자를 인자로 넣으면 구분자없이 문자열 합침
var langs = ['HTML', 'CSS', 'JavaScript'];
var res = langs.join('/');
// 결과 : 'HTML/CSS/JavaScript'
⭐ join() 함수에 특정 구분자('/')를 인자로 넣으면 해당 구분자로 배열의 문자열을 합침