BufferedReader, StringTokenizer, Scanner
BufferedReader์ Scanner์ ์ฐจ์ด์ ๋ฐ ์ฌ์ฉ๋ฒ
๊ฐ์
์๋ฐ์์ ์
๋ ฅ์ ์ฒ๋ฆฌํ ๋ BufferedReader
์ Scanner
ํด๋์ค๋ฅผ ์์ฃผ ์ฌ์ฉํฉ๋๋ค. ์ด ๊ธ์์๋ BufferedReader
๋ฅผ ์ค์ฌ์ผ๋ก Scanner
์์ ์ฐจ์ด์ ๋ฐ ์ฌ์ฉ๋ฒ์ ์ ๋ฆฌํฉ๋๋ค.
๋ณธ๋ก
BufferedReader ์ฌ์ฉ๋ฒ
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
๋ถ์
- System.in:
- ์ฝ์์์ ๋ฐ์ดํฐ๋ฅผ ์
๋ ฅ๋ฐ๊ธฐ ์ํ
InputStream
ํ์ ์ ํ๋์ ๋๋ค.System
ํด๋์ค์in
์ ์ ํ๋๋ก, ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฐ์ดํธ ์คํธ๋ฆผ์ผ๋ก ์ ๋ ฅ์ ์ฒ๋ฆฌํฉ๋๋ค. System.in
์ผ๋ก ๋ฐ์InputStream
๊ฐ์ฒด๋read
ํจ์๋ฅผ ํตํด 1๋ฐ์ดํธ๋ง ์ฝ์ ์ ์์ด, ํ๊ธ๊ณผ ๊ฐ์ 2๋ฐ์ดํธ ๋ฌธ์๋ ์ฝ์ ์ ์์ต๋๋ค.
- ์ฝ์์์ ๋ฐ์ดํฐ๋ฅผ ์
๋ ฅ๋ฐ๊ธฐ ์ํ
- InputStreamReader:
InputStream
๊ฐ์ฒด๋ฅผ ์ ๋ ฅ์ผ๋ก ๋ฐ์, ๋ฐ์ดํธ ์คํธ๋ฆผ์ ๋ฌธ์ ์คํธ๋ฆผ์ผ๋ก ๋ณํํฉ๋๋ค. ๋ฐ๋ผ์new InputStreamReader(System.in)
์ ๋ฐ์ดํธ ๋ฐ์ดํฐ๋ฅผ ๋ฌธ์ ๋ฐ์ดํฐ๋ก ์ฝ์ ์ ์๊ฒ ํฉ๋๋ค.- ํ์ง๋ง, ๋ฐฐ์ด ํฌ๊ธฐ๋ฅผ ์ผ์ผ์ด ์ง์ ํด์ผ ํ๋ ๋ถํธํจ์ด ์์ต๋๋ค.
- BufferedReader:
InputStreamReader
๋ฅผ ์ ๋ ฅ๋ฐ์ ๋ฌธ์ ์คํธ๋ฆผ์ ๋ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํฉ๋๋ค.BufferedReader
๋ ๊ฐํ ๋ฌธ์๊ฐ ์ ๋ ฅ๋๊ธฐ ์ ๊น์ง์ ๋ชจ๋ ํ ์คํธ๋ฅผ ์ ์ฅํ๊ณ , ์คํธ๋ฆผ์ด ๋ค ์ฐจ๊ฑฐ๋null
์ด ์๋๋ผ๋ฉด ๊ทธ ๊ฐ์ ๊ณ์ ๊ฐ๊ณ ์์ต๋๋ค.- ๋ง์ ๋ฐ์ดํฐ๋ฅผ ์
๋ ฅ๋ฐ์ ๊ฒฝ์ฐ
Scanner
๋ณด๋ค ๋ฉ๋ชจ๋ฆฌ์ ์ผ๋ก ๋ ํจ์จ์ ์ ๋๋ค.
ํ์ฉ ์์
String ์ ๋ ฅ
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String s = reader.readLine(); // ํ ์ค์ ์ฝ์ด String ํ์
์ผ๋ก ๊ฐ์ ๊ฐ์ ธ์ต๋๋ค.
String ๋ฐฐ์ด ์ ๋ ฅ
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String[] strArrN = reader.readLine().split(" "); // ํ ์ค์ ์ฝ์ด " "์ ๊ธฐ์ค์ผ๋ก ๋๋ String ๋ฐฐ์ด๋ก ๋ง๋ญ๋๋ค.
int ์ ๋ ฅ
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int i = Integer.parseInt(reader.readLine()); // ํ ์ค์ ์ฝ์ด ์ซ์๋ก ๋ณํํ์ฌ int๋ก ์ ์ฅํฉ๋๋ค.
int ๋ฐฐ์ด ์ ๋ ฅ ๋ฐ ์ ๋ ฌ
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String[] strArrN = reader.readLine().split(" ");
int[] arrAList = new int[strArrN.length];
for(int i = 0; i < strArrN.length; i++) {
arrAList[i] = Integer.parseInt(strArrN[i]);
}
Arrays.sort(arrAList); // ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ
Scanner ํด๋์ค
Scanner๋?
Scanner
ํด๋์ค๋ ๊ธฐ๋ณธ ํ์
๊ณผ ๋ฌธ์์ด์ ๊ตฌ๋ฌธ ๋ถ์ํ ์ ์๋ ํด๋์ค์
๋๋ค. ์๋ฅผ ๋ค์ด, ์ซ์๋ ๋ฌธ์์ด ๋ฑ์ ๋ถ์ํ์ฌ ์
๋ ฅ๊ฐ์ ์ฒ๋ฆฌํฉ๋๋ค.
Scanner ์ฌ์ฉ๋ฒ
Scanner sc = new Scanner(System.in);
int a = sc.nextInt(); // ์
๋ ฅ๋ฐ์ intํ ์ซ์๋ฅผ ๋ณ์์ ์ ์ฅ
String b = sc.next(); // ์
๋ ฅ๋ฐ์ Stringํ ๋ฌธ์์ด์ ๋ณ์์ ์ ์ฅ
long c = sc.nextLong(); // ์
๋ ฅ๋ฐ์ longํ ์ซ์๋ฅผ ๋ณ์์ ์ ์ฅ
BufferedReader์ Scanner์ ์ฐจ์ด์
- ์๋:
Scanner
๋ ์ ๋ ฅ ์ฆ์ ํ๋ก๊ทธ๋จ์ ์ ์ก๋๊ณ ,BufferedReader
๋ ๋ฒํผ๋ฅผ ์ฌ์ฉํด ์ ๋ ฅ์ ๋ฐ์ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํฉ๋๋ค. ๋ฐ๋ผ์BufferedReader
๊ฐ ๋ ๋น ๋ฆ ๋๋ค.
StringTokenizer ํด๋์ค
StringTokenizer๋?
StringTokenizer
ํด๋์ค๋ ์ง์ ๋ ๊ตฌ๋ถ์๋ก ๋ฌธ์์ด์ ๋ถ๋ฆฌํ์ฌ ํ ํฐ์ผ๋ก ๋๋๋ ํด๋์ค์
๋๋ค.
StringTokenizer ์ฌ์ฉ๋ฒ
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine()); // ํ ์ค์ ์ฝ์ด ๊ตฌ๋ถ์๋ก ๋ถ๋ฆฌํ ์ค๋น๋ฅผ ํฉ๋๋ค.
String b = st.nextToken(); // ์ฒซ ๋ฒ์งธ ํ ํฐ์ ๋ณ์์ ์ ์ฅํฉ๋๋ค.
๋ง๋ฌด๋ฆฌ
์ ๋ฆฌ
- InputStream(= System.in):
- ์ฝ์ด์ค๋ ํจ์:
read()
- ๋จ์: byte
- ๋จ์ : ํ๊ธ์ ์ฝ์ ์ ์๋ค.
- ์ฝ์ด์ค๋ ํจ์:
- InputStreamReader:
- ์ฝ์ด์ค๋ ํจ์:
read()
- ๋จ์: char
- ๋จ์ : ๋ฐฐ์ด ํฌ๊ธฐ ์ง์ ์ด ๋ฒ๊ฑฐ๋กญ๋ค.
- ์ฝ์ด์ค๋ ํจ์:
- BufferedReader:
- ์ฝ์ด์ค๋ ํจ์:
readLine()
- ๋จ์: String
- ๋จ์ : ์์ ๊ฒฝ์ฐ๋ฅผ ๋ชจ๋ ๋ด์์ผ ํด์ ์ฝ๋๊ฐ ๋ณต์กํด์ง ์ ์๋ค.
- ์ฝ์ด์ค๋ ํจ์:
- Scanner:
- ์ฅ์ : ๋ค์ํ ๋ฐ์ดํฐ ํ์ ์ง์, ์ฌ์ฉ ํธ๋ฆฌ์ฑ
- ๋จ์ : ์๋๊ฐ ๋๋ฆฌ๋ค.
์ฝ๋ฉ ํ
์คํธ์์๋ BufferedReader
์ StringTokenizer
๋ฅผ ๋ง์ด ์ฌ์ฉํ๊ฒ ๋๋๋ฐ, ์ด๋ Scanner
๋ณด๋ค ์๋๊ฐ ๋น ๋ฅด๊ธฐ ๋๋ฌธ์
๋๋ค. BufferedReader
์ ํจ๊ป StringTokenizer
๋ฅผ ์ฌ์ฉํ๋ฉด ์
๋ ฅ ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ๋ถ๋ฆฌํ ์ ์์ต๋๋ค.
Leave a comment