Search
Duplicate

BufferdReader / StringTokenizer

νƒœκ·Έ
ꡬ뢄
μŠ€ν„°λ””λ‘œκ·Έ
BuffredReader 와 Scanner
처음 λ°°μ› μ„λ•Œ Buffer 둜 μž…λ ₯을 λ°›λŠ”κ²ƒλ§Œ λ°°μ›Œμ„œ μž…λ ₯방식이 이것밖에 μ—†λŠ”μ€„ μ•Œμ•˜λ‹€,, ν•˜μ§€λ§Œ ꡭ비학원을 λ‹€λ‹ˆλ©΄μ„œ 보톡 μ‹œμž‘μ€ Sanner λ°©μ‹μœΌλ‘œ μž…λ ₯을 λ°›λŠ”λ‹€λŠ” 것을 μ•Œκ²Œλ˜μ—ˆκ³ , 이 λ‘˜μ˜ 차이가 뭔지 κΆκΈˆν•΄μ Έμ„œ κ³΅λΆ€ν•΄λ³΄μ•˜λ‹€.
β€’
Scanner λ°©μ‹μ˜ μž…λ ₯
β—¦
띄어쓰기와 κ°œν–‰λ¬Έμžλ₯Ό κ²½κ³„λ‘œ ν•˜μ—¬ μž…λ ₯ 값을 μΈμ‹ν•œλ‹€.
β—¦
λ§Žμ€ μž…λ ₯을 ν•„μš”λ‘œ ν•  κ²½μš°μ—λŠ” μ„±λŠ₯상 쒋지 λͺ»ν•œ κ²°κ³Όλ₯Ό λΆˆλŸ¬μ˜¨λ‹€.
Scanner sc = new Scanner(system.in); // 슀페이슀λ₯Ό κΈ°μ€€μœΌλ‘œ ν•œ 단어λ₯Ό μž…λ ₯λ°›λŠ”λ‹€. [λ³€μˆ˜λͺ…] = sc.next(); // μžλ£Œν˜•μ— λ§žλŠ” 값을 μž…λ ₯ 받을 수 μžˆλ‹€. [λ³€μˆ˜λͺ…] = sc.nextInt(); [λ³€μˆ˜λͺ…] = sc.nextDouble(); // ν•œ 쀄을 μž…λ ₯ λ°›λŠ”λ‹€. [λ³€μˆ˜λͺ…] = sc.nextLine();
Java
볡사
β€’
Buffer λ°©μ‹μ˜ μž…λ ₯
β—¦
κ°œν–‰λ¬Έμžλ§Œ κ²½κ³„λ‘œ μž…λ ₯ν•˜κ³ , μž…λ ₯받은 데이터가 String 으둜 κ³ μ •λœλ‹€.
β—¦
데이터λ₯Ό λ”°λ‘œ 가곡해야 ν•˜μ§€λ§Œ, Scanner 보닀 속도가 λΉ λ₯΄λ‹€.
β—¦
동기화가 되기 λ•Œλ¬Έμ— multi thread ν™˜κ²½μ—μ„œ μ•ˆμ „ν•˜λ‹€. (곡뢀 ν•„μš”)
BufferedReader br = new BuffferedReader(new InputStreamReader(System.in)); // ν˜•λ³€ν™˜ ν•„μš” int [λ³€μˆ˜λͺ…] = Integer.parseInt(br.readLine());
Java
볡사
데이터 가곡
Buffer λ°©μ‹μ˜ μž…λ ₯은 κ°œν–‰λ¬Έμžλ₯Ό κ²½κ³„λ‘œ μž…λ ₯ν•œλ‹€κ³  ν–ˆλ‹€. 이말은 Line λ‹¨μœ„λ‘œ μž…λ ₯λ°›λŠ”λ‹€λŠ” μ†Œλ¦¬μ΄λ‹€. λ§Œμ•½ 이λ₯Ό 곡백 λ‹¨μœ„λ‘œ κ°€κ³΅ν•˜κ³ μž ν•œλ‹€λ©΄ StringTokenizer λ‚˜ String.split() ν•¨μˆ˜λ₯Ό μ΄μš©ν•˜μ—¬ μž‘μ—…μ„ ν•΄μ£Όμ–΄μ•Ό ν•œλ‹€.
// StringTokenizer BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); int [λ³€μˆ˜λͺ…] = Integer.parseInt(st.nextToken()); int [λ³€μˆ˜λͺ…] = Integer.parseInt(st.nextToken()); // String.split() ν•¨μˆ˜ String arr[] = s.split(" ");
Java
볡사
β€’
StrigTokenizer
nextToken() ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ readLine() 을 톡해 μž…λ ₯받은 값을 곡백 λ‹¨μœ„λ‘œ κ΅¬λΆ„ν•˜μ—¬ μˆœμ„œλŒ€λ‘œ ν˜ΈμΆœν•œλ‹€.
β€’
String.split()
배열에 κ³΅λ°±λ‹¨μœ„λ‘œ λŠμ–΄ 데이터λ₯Ό μ €μž₯ν•˜μ—¬ μ‚¬μš©ν•œλ‹€.