import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
System.out.print(str + "??!");
sc.close();
}
}
next()
- 공백을 기준으로 한 단어 또는 한 문자씩 입력받음
- 버퍼에 입력된 문자나 문자열에서 공백 전까지의 단어를 읽어옴
- 개행 문자를 가져오지 않음
nextLine()
- 문자 또는 Enter를 입력하기 전까지의 문장 전체를 입력받음
- 버퍼에 입력된 문자열을 개행 문자까지 포함하여 가져옴
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
System.out.print(str + "??!");
br.close();
}
}
const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().trim();
console.log(input + '??!');
trim()
- 문자열 앞뒤 공백 제거 후 반환
const input = require('fs').readFileSync('/dev/stdin').toString().trim();
console.log(`${input}??!`);
💡 템플릿 리터럴(Template Literal) : ES6부터 새롭게 표기된 문자열 표기법, 큰 따옴표(")가 아닌 백틱(`)을 사용하여 문자열 표기
ㄴ 기능
- 줄바꿈(개행)
var normalStr = "Hello!\nJavaScript";
→ 기존의 일반 문자열 방식에서는 줄바꿈이 허용되지 않았기 때문에 백슬러시(\)로 시작하는 escape sequence 사용
ex) \n, \t ...var templateStr = `Hello! JavaScript`;
→ 템플릿 리터럴 사용 시 줄바꿈 등을 쉽게 표현 가능
- 표현식 삽입
var year = 1; var age = 25; var str = " Birthday!" console.log("Happy " + (year * age) + "th" + str);
→ 큰 따옴표를 이용한 일반 문자열 방식에서는 + 연산자 이용
var year = 1; var age = 25; var str = " Birthday!" console.log(`Happy ${year * age}th ${str}`)
→ 템플릿 리터럴 사용 시 ${ } 사이에 변수나 연산 등을 삽입 가능
→ ${ }의 결과는 문자열로 자동 변환
str = input()
print(str + "??!")