2์žฅ - ์ž…์ถœ๋ ฅ ๋‹ค๋ฃจ๊ธฐ

2025. 2. 11. 10:52ยท๐Ÿฆ– Private/Java Language

Intro

ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๊ธฐ๋ณธ์€ ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ์ด๋‹ค.

์ž…๋ ฅ(input)์€ ๋ช…๋ น์— ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•˜๋Š” ๊ฒƒ์ด๊ณ , ์ถœ๋ ฅ(output)์€ ์ž…๋ ฅ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋กœ ๋ช…๋ น์„ ์ˆ˜ํ–‰ํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๊ฒƒ์ด๋‹ค.

๋ณดํ†ต ๋‘˜์„ ํ•ฉ์ณ ์ž…์ถœ๋ ฅ(I/O)๋ผ๊ณ  ํ•˜๋ฉฐ, ์ผ๋ฐ˜์ ์œผ ๋งˆ์šฐ์Šค๋‚˜ ํ‚ค๋ณด๋“œ ๋“ฑ์˜ ์ž…๋ ฅ์žฅ์น˜๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅ ๋ฐ›์•„ ๋ชจ๋‹ˆํ„ฐ ํ™”๋ฉด์— ์ถœ๋ ฅํ•œ๋‹ค.


2.1. ์ถœ๋ ฅํ•˜๊ธฐ

์ž๋ฐ”์—์„œ ์ถœ๋ ฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋Œ€ํ‘œ์ ์ธ ๋ช…๋ น์–ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • print()
  • printf()
  • println()

์ถœ๋ ฅ ๋ช…๋ น์„ ๋‚ด๋ฆด ๋•Œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜•ํƒœ๋กœ ๋ช…๋ น๋ฌธ์„ ์ž‘์„ฑํ•ด์•ผํ•œ๋‹ค.

System.out.print("Hello");
System.out.printf("Hello");
System.out.println("Hello");

 

 

์ž๋ฐ”๋Š” ์ผ๋ฐ˜ ํ”„๋กœ๊ทธ๋žจ๊ณผ ๋‹ฌ๋ฆฌ JVM ์œ„์—์„œ ์‹คํ–‰๋œ๋‹ค. ๋”ฐ๋ผ์„œ ํ”„๋กœ๊ทธ๋žจ์ด ์ง์ ‘ ์šด์˜์ฒด์ œ์— ์ ‘๊ทผํ•  ์ˆ˜๊ฐ€ ์—†๋‹ค.

์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์—์„œ ์šด์˜์ฒด์ œ์˜ ๊ธฐ๋Šฅ(ํ‚ค๋ณด๋“œ ์ž…๋ ฅ, ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒ ๋“ฑ)์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์—ฐ๊ฒฐ๊ณ ๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๋ฉฐ, System ํด๋ž˜์Šค๊ฐ€ ์ด ์—ฐ๊ฒฐ๊ณ ๋ฆฌ ์—ญํ• ์„ ๋‹ด๋‹นํ•œ๋‹ค. 

-> ๊ทธ๋ž˜์„œ ์ถœ๋ ฅ ๋ช…๋ น์–ด ์•ž์— System ํด๋ž˜์Šค๋ฅผ ์—ฐ๊ฒฐํ•ด ์‚ฌ์šฉํ•œ๋‹ค.

 

 

 

2.1.1. println() ์‚ฌ์šฉ ๋ฐฐ๊ฒฝ

public class Main{
    public static void main(String[] args){
        System.out.print("Hello");
        System.out.print("Java");
    }
}

 

print()๋Š” ๋ช…๋ น์–ด ๋‚ด์šฉ์„ ์ถœ๋ ฅํ•œ ๋’ค ์ค„์„ ๋ฐ”๊พธ์ง€ ์•Š๋Š”๋‹ค. ์ฆ‰ ์ฝ”๋“œ๋Š” ๋‘ ๊ฐœ์˜ print()๋ฅผ ๋‘ ์ค„์— ๊ฑธ์ณ ์“ฐ๊ณ ์žˆ์ง€๋งŒ, ์ถœ๋ ฅ๋ ๋•Œ๋Š” ์ค„ ๋ฐ”๊ฟˆ๋˜์ง€ ์•Š๊ณ  ํ•œ ์ค„์— ์ด์–ด์ ธ ์จ์ง„๋‹ค.

 

์ค„ ๋ฐ”๊ฟˆ์„ ํ•˜์—ฌ ๋‹ค์Œ ์ค„์— ๋ฌธ์ž์—ด์„ ์ถœ๋ ฅํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ํŠน์ˆ˜๋ฌธ์ž(๊ฐœํ–‰๋ฌธ์ž) \n์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

๊ฐœํ–‰๋ฌธ์ž๋Š” ๋ฌธ์ž์—ด ๋‚ด์— ๊ทธ๋ƒฅ ๋ฌธ์ž์ฒ˜๋Ÿผ ์“ฐ๋ฉด ๋œ๋‹ค(ํŠน์ˆ˜"๋ฌธ์ž"๋‹ˆ๊น!!)

public class Main{
    public static void main(String[] args){
        System.out.print("Hello\n");
        System.out.print("Java");
    }
}

 

 

 

 

2.1.2. ํŠน์ˆ˜๋ฌธ์ž

์ž๋ฐ”์—๋Š” ํŠน์ˆ˜ํ•œ ์—ญํ• ์„ ํ•˜๋Š” ๋ฌธ์ž๋“ค์ด ์žˆ๊ณ , ํŠน์ˆ˜ ๋ฌธ์ž์ž„์„ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด \๋ฅผ ๋ถ™์ธ๋‹ค. 

๋ฐฑ์Šฌ๋ž˜์‹œ๋Š” ๋’ค์— ๋‹ค๋ฅธ ๋ฌธ์ž๊ฐ€ ์˜ค๋ฉด ๋ฌธ์ž์˜ ์˜๋ฏธ๋ฅผ ํ™•์žฅ์‹œํ‚ค๊ธฐ ๋•Œ๋ฌธ์— ์ด์Šค์ผ€์ดํ”„ ๋ฌธ์ž(escape character)๋ผ๊ณ ๋„ ๋ถˆ๋ฆฐ๋‹ค.

์ž์ฃผ ์“ฐ์ด๋Š” ํŠน์ˆ˜๋ฌธ์ž๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค. \b์™€ \r์€ ์ž˜ ์ดํ•ด๊ฐ€ ๋˜์ง€ ์•Š์•„ ์•„๋ž˜ ์ฝ”๋“œ์— ๋‚จ๊ฒจ๋ดค๋‹ค.

ํŠน์ˆ˜ ๋ฌธ์ž  
\b ์ปค์„œ๋ฅผ ํ•œ ๋ฌธ์ž ์•ž์œผ๋กœ(๋ฐฑ์ŠคํŽ˜์ด์Šค=์•ž์˜ ๋ฌธ์ž๋ฅผ ํ•˜๋‚˜ ์ง€์›€)
\r ์ค„์˜ ๋งจ ์•ž์œผ๋กœ(์บ๋ฆฌ์ง€ ๋ฆฌํ„ด)
\n ์ค„ ๋ฐ”๊ฟˆ
\t ํƒญ, ๋“ค์—ฌ์“ฐ๊ธฐ
\0 ๋นˆ์นธ(null)
System.out.print("Hel\blo");
//HeloJava

System.out.print("Hel\rlo");
//loJava

 

 

 

2.1.3. println()์œผ๋กœ ์ค„ ๋ฐ”๊ฟ” ์ถœ๋ ฅํ•˜๊ธฐโ˜…

์ถœ๋ ฅํ•  ๋‚ด์šฉ์„ ์ž‘์„ฑํ•  ๋•Œ๋งˆ๋‹ค ๊ฐœํ–‰ ๋ฌธ์ž๋ฅผ ๋„ฃ์–ด์•ผ ํ•˜๋Š”๊ฑด ๋„ˆ๋ฌด ๊ท€์ฐฎ๋‹ค. ์ด๋Ÿด๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ช…๋ น์–ด๊ฐ€ printIn()์ด๋‹ค.

ln์€ line์„ ์˜๋ฏธํ•˜๋ฉฐ println()์€ 'ํ”„๋ฆฐํŠธ ๋ผ์ธ'์ด๋ผ๊ณ  ์ฝ๋Š”๋‹ค.

public class Main{
    public static void main(String[] args){
        System.out.println("Hello");
        System.out.println("Java");
    }
}


2.2. ์ž…๋ ฅ ๋ฐ›๊ธฐ

์ถœ๋ ฅ์ด ๋ช…๋ น์„ ์‹คํ–‰ํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๊ฒƒ์ด๋ผ๋ฉด, ์ž…๋ ฅ์€ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ์–ด์ฃผ๋Š” ๊ฒƒ์ด๋‹ค.

 

2.2.1. read()๋กœ ์ž…๋ ฅ๋ฐ›๊ธฐ

๋Œ€ํ‘œ์ ์ธ ์ž…๋ ฅ ๋ช…๋ น์–ด๋กœ๋Š” read()๊ฐ€ ์žˆ๋‹ค.

์ถœ๋ ฅ ๋ช…๋ น์–ด์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํ˜•์‹์ด ์ •ํ•ด์ ธ ์žˆ์œผ๋ฉฐ, ์•„๋ž˜์˜ ๋ช…๋ น๋ฌธ์ฒ˜๋Ÿผ ์“ด๋‹ค. ์˜๋ฏธ๋Š” 'ํ‚ค๋ณด๋“œ๋กœ ๊ฐ’(๋ฐ์ดํ„ฐ)๋ฅผ ์ž…๋ ฅ๋ฐ›์•„๋ผ'์ด๋‹ค.

System.in.read()

 

read() ๋ช…๋ น์–ด๋Š” ๊ฐ’์„ ์ฝ์–ด๋งŒ ์˜ค๊ธฐ ๋•Œ๋ฌธ์—, ๊ฐ’์„ ์–ด๋”˜๊ฐ€์— ์ €์žฅํ•ด์•ผํ•œ๋‹ค. 

-> ์ด ๋ถ€๋ถ„์€ 3์žฅ์—์„œ ๋ฐฐ์šฐ๋ฏ€๋กœ(=์•„์ง ์•ˆ ๋ฐฐ์› ์Œ) ์—ฌ๊ธฐ์„œ๋Š” ์ถœ๋ ฅ ๋ช…๋ น์–ด์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋Š”๊ฑธ๋กœ ๋Œ€์ฒดํ•œ๋‹ค.

 

์œ„์˜ ์ฝ”๋“œ๋Š”, ํ‚ค๋ณด๋“œ๋กœ ๊ฐ’์„ ์ฝ์–ด์™€์„œ ํ™”๋ฉด์— ์ถœ๋ ฅํ•˜๋ผ๋Š” ์˜๋ฏธ์ด๋‹ค.

๊ทธ๋Ÿฐ๋ฐ read ๋ถ€๋ถ„์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  ์žˆ๋‹ค. Unhandled exception: java.io.IOException

 

ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋‹ค ๋ณด๋ฉด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ด ํ”„๋กœ๊ทธ๋žจ์ด ๋ฉˆ์ถ”๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. ์ด๋•Œ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ๋Š” 2๊ฐ€์ง€์ด๋‹ค.
1) ์˜ค๋ฅ˜(error)
2) ์˜ˆ์™ธ(exception)

์˜ค๋ฅ˜๋Š” ์˜ˆ์ธกํ•˜๊ธฐ ์–ด๋ ต์ง€๋งŒ, ์˜ˆ์™ธ๋Š” ์˜ˆ์ธกํ•ด์„œ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์ž๋ฐ”๋Š” ์˜ˆ์™ธ์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•์„ ์ง€์›ํ•˜๋ฉฐ ๋•Œ๋ฌธ์— ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๊ฐ€ ๋˜์ง€ ์•Š์œผ๋ฉด ์œ„์ฒ˜๋Ÿผ ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

์ž๋ฐ”๋Š” ์ž…๋ ฅ ๋ช…๋ น์–ด(read๊ฐ™์€)๋ฅผ ์‚ฌ์šฉํ•  ๋–„ ๊ฐ’์ด ์ž˜๋ชป ์ž…๋ ฅ๋˜๋Š” ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ํ•„์ˆ˜๋กœ ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ฅผ ์š”๊ตฌํ•œ๋‹ค. ์ด ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ์–ด๋–ป๊ฒŒ ํ•˜๋Š”์ง€ ์‚ดํŽด๋ณด์ž.

read์— ๋งˆ์šฐ์Šค๋ฅผ ๊ฐ€์ ธ๋‹ค๋œ ๋’ค "Add exception to method signature"์„ ํด๋ฆญํ•˜์ž.

-> ๊ทธ๋Ÿฌ๋ฉด ๋งจ ์œ„์— import java.io.IOException;๊ณผ main() ๋ฉ”์„œ๋“œ ๋’ค์— throw IOException(์˜ˆ์™ธ ๊ฑฐ๋ฅด๊ธฐ)์ด ์ถ”๊ฐ€๋œ๋‹ค.

-> ์ž๋ฐ”์—์„œ ์ž…์ถœ๋ ฅ๊ณผ ๊ด€๋ จ๋œ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋Š” IOExceprion ํด๋ž˜์Šค์—์„œ ๋‹ด๋‹นํ•œ๋‹ค

(์ž์„ธํ•œ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋Š” 9์žฅ์—์„œ ๋‹ค๋ฃจ๋‹ˆ, ์—ฌ๊ธฐ์„œ๋Š” ํ•ด๋‹น ํด๋ž˜์Šค๊ฐ€ ์ž…์ถœ๋ ฅ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ฅผ ๋‹ด๋‹นํ•œ๋‹ค๋Š” ๊ฒƒ๋งŒ ์•Œ๊ณ  ๋„˜์–ด๊ฐ€์ž)

 

 

2.2.2. import

์ž๋ฐ”์—์„œ ํŒจํ‚ค์ง€(package)๋Š” ํด๋ž˜์Šค์™€ ํŒŒ์ผ ๋“ฑ์„ ํ•˜๋‚˜๋กœ ๋ฌถ์€ ๋‹จ์œ„์ด๋‹ค. ํด๋”๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ์ดํ•ดํ•˜๊ธฐ ํŽธํ•˜๋‹ค.

IOExcetion ํด๋ž˜์Šค๋Š” java.io ํŒจํ‚ค์ง€์— ํฌํ•จ๋˜์–ด์žˆ๋‹ค.

 

๋‹ค๋ฅธ ํŒจํ‚ค์ง€์— ์†ํ•œ ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ํ˜„์žฌ ํด๋ž˜์Šค๋ช… ์•ž์— ํ•ด๋‹น ํŒจํ‚ค์ง€ ๋ช…์„ ๋ชจ๋‘ ๋ถ™์—ฌ์•ผํ•˜๋Š”๋ฐ ์ด๊ฑด ๋„ˆ๋ฌด ๊ท€์ฐฎ์œผ๋ฏ€๋กœ ์ด ๊ณผ์ •์„ ๊ฐ„์†Œํ™” ํ•˜๊ธฐ ์œ„ํ•ด import ์ž‘์—…์„ ํ•œ๋‹ค.

ํด๋ž˜์Šค ์œ„์— ์•„๋ž˜ ํ˜•์‹์œผ๋กœ importํ•˜๋ฉด ๋‹ค๋ฅธ ํŒจํ‚ค์ง€์˜ ํด๋ž˜์Šค๋ฅผ ๋ถˆ๋Ÿฌ์™€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

import [ํŒจํ‚ค์ง€๋ช…].[ํด๋ž˜์Šค๋ช…];
//import java.io.IOException

 

 

 

2.2.3. Scanner ํด๋ž˜์Šค ์‚ฌ์šฉ ๋ฐฐ๊ฒฝ

์œ„์—์„œ ์ž‘์„ฑํ•œ ์ฝ”๋“œ์ด๋‹ค. ์ด๋•Œ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  1์„ ์ž…๋ ฅํ•˜๋ฉด ์ถœ๋ ฅ๊ฐ’์ด 49๊ฐ€ ๋‚˜์˜ค๋Š”๋ฐ ์™œ๊ทธ๋Ÿฌ๋Š”์ง€ ์‚ดํŽด๋ณด์ž.

import java.io.IOException;

public class Main{
    public static void main(String[] args) throws IOException {
        System.out.println(System.in.read());
    }
}

 

 

1์„ ์ž…๋ ฅํ–ˆ๋Š”๋ฐ 49๊ฐ€ ๋‚˜์˜ค๋Š” ์ด์œ ๋Š”, read() ๋ช…๋ น์–ด๊ฐ€ ์ž…๋ ฅ๊ฐ’์„ ASCII ์ฝ”๋“œ๋กœ ๋ฐ›์•„์„œ ๊ทธ๋ ‡๋‹ค. ASCII ์ฝ”๋“œ๋Š” ์•ŒํŒŒ๋ฒณ์ด๋‚˜ ์ˆซ์ž ๋“ฑ์„ ์ปดํ“จํ„ฐ๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ณ€ํ™˜(์ธ์ฝ”๋”ฉ)ํ• ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. ์ˆซ์ž 1์€ ์•„์Šคํ‚ค ์ฝ”๋“œ์—์„œ 10์ง„๋ฒ•์œผ๋กœ 49์ด๋ฏ€๋กœ 49๊ฐ€ ์ถœ๋ ฅ๋œ ๊ฒƒ์ด๋‹ค.

 

๋˜ํ•œ read() ๋ช…๋ น์–ด๋Š” 1๋ฐ”์ดํŠธ๋งŒ ์ฝ์–ด์˜ค๊ธฐ ๋•Œ๋ฌธ์— 123์„ ์ž…๋ ฅํ•˜๋ฉด 1๋งŒ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

์ฐธ๊ณ ๋กœ ์ˆซ์ž & ์•ŒํŒŒ๋ฒณ = 1๋ฐ”์ดํŠธ, ํ•œ๊ธ€ 1๊ธ€์ž = 2๋ฐ”์ดํŠธ

 

read() ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ ์ž…๋ ฅํ•œ ๊ทธ๋Œ€๋กœ 1์„ ์ถœ๋ ฅํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์ž…๋ ฅ ๋ช…๋ น์–ด System.in.read() ์•ž์— (char)์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๋œ๋‹ค.

import java.io.IOException;

public class Main{
    public static void main(String[] args) throws IOException {
        System.out.println((char)System.in.read());
    }
}

/*
1
1
*/

 

 

 

2.2.4. Scanner ํด๋ž˜์Šค๋กœ ์ž…๋ ฅ๋ฐ›๊ธฐโ˜…

์ž๋ฐ”๋Š” ์ž…์ถœ๋ ฅ์ด ์ŠคํŠธ๋ฆผ์„ ํ†ตํ•ด ์ด๋ฃจ์–ด์ง„๋‹ค. ์ŠคํŠธ๋ฆผ(Stream)์€ ์ž…์ถœ๋ ฅ ์žฅ์น˜์™€ ํ”„๋กœ๊ทธ๋žจ์„ ์—ฐ๊ฒฐํ•˜๋Š” ํ†ต๋กœ์ด๋‹ค.

์ŠคํŠธ๋ฆผ์„ ํ†ตํ•ด ์ž…๋ ฅ์žฅ์น˜๋กœ ์ž…๋ ฅํ•œ ๊ฐ’์€ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ์ „๋‹ฌ๋˜๊ณ , ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•œ ๊ฒฐ๊ณผ๋Š” ์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ์„ ํ†ตํ•ด ์ถœ๋ ฅ ์žฅ์น˜์— ํ‘œ์‹œ๋œ๋‹ค.

-> ์ŠคํŠธ๋ฆผ์—๋Š” '๋ฌผ์ค„๊ธฐ'๋ผ๋Š” ๋œป์ด ์žˆ๋Š”๋ฐ, ๋ฌผ์ค„๊ธฐ๊ฐ€ ํ•œ ๋ฐฉํ–ฅ์œผ๋กœ๋งŒ ํ๋ฅด๋“ฏ ์ŠคํŠธ๋ฆผ๋„ ํ•œ ๋ฐฉํ–ฅ์œผ๋กœ๋งŒ ์ „๋‹ฌ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. 

-> ๊ทธ๋ž˜์„œ ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ์ด ๋”ฐ๋กœ ์กด์žฌํ•œ๋‹ค.

 

์ž…๋ ฅ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๋‚˜์˜จ System.in์ด ์ž…๋ ฅ ์ŠคํŠธ๋ฆผ์ด๋ฉฐ, ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ System.out์ด ์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ์ด๋‹ค. 

(์ž…์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ 11์žฅ์—์„œ ๋ฐฐ์šฐ๋‹ˆ ๊ฐ€๋ณ๊ฒŒ ์ฝ๊ณ  ๋„˜์–ด๊ฐ€์ž)

read()๋Š” 1๋ฐ”์ดํŠธ๋งŒ ์ฝ์–ด์˜ฌ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ์ž๋ฐ”์—์„œ๋Š” ๊ฐ’์„ ์ž…๋ ฅ๋ฐ›์„๋•Œ ์ฃผ๋กœ Scanner ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
Scanner ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค์•™ํ–” ํ˜•ํƒœ์˜ ๊ฐ’์„ ์ž…๋ ฅ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค!

 

 

Scanner ํด๋ž˜์Šค๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ํ˜•ํƒœ๋กœ ์‚ฌ์šฉํ•œ๋‹ค. Scanner ํด๋ž˜์Šค๋กœ ๊ฐ’์„ ์ž…๋ ฅ๋ฐ›์•„ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์ด ๊ฐ’์„ ์–ด๋”˜๊ฐ€์— ์ €์žฅํ•ด์•ผํ•˜๋Š”๋ฐ, ์ด ์—ญํ• ์„ ํ•˜๋Š” ๊ฒƒ์ด ๋ณ€์ˆ˜์ด๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” scan์ด ๋ณ€์ˆ˜์— ํ•ด๋‹นํ•œ๋‹ค.

import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        Scanner scan = new Scanner(System.in); //Scanner ๋ถ€๋ถ„
        System.out.println(scan.nextLine()); //์ถœ๋ ฅ ๋ถ€๋ถ„
        scan.close
    }
}

/*
์•ˆ๋…•์•ˆ๋…•
์•ˆ๋…•์•ˆ๋…•
*/

 

//Scanner ๋ถ€๋ถ„

-> ๋“ฑํ˜ธ ์ด์ „์˜ Scanner scan์€ Scanner์˜ ๊ฐ์ฒด ์ด๋ฆ„์ด scan์ž„์„ ๋ช…์‹œํ•œ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค

-> ๋“ฑํ˜ธ ์ดํ›„์˜ new Scanner(System.in)์˜ new๋Š” ๋ฉ”๋ชจ๋ฆฌ์— ์ƒˆ๋กœ์šด Scanner ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ฒ ๋‹ค๋Š” ํ‚ค์›Œ๋“œ์ด๋‹ค.

 

//์ถœ๋ ฅ ๋ถ€๋ถ„

-> nextLine()์€ Scanner ํด๋ž˜์Šค์— ์†ํ•œ ๋ช…๋ น์–ด๋กœ, ๊ฐ’์„ ํ•œ ์ค„ ๋‹จ์œ„(์‚ฌ์šฉ์ž๊ฐ€ Enter์„ ์น˜๊ธฐ ์ „๊นŒ์ง€)๋กœ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค. ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๋Š” ๋Œ€์ƒ์€ ์•ž์—์„œ ๋งŒ๋“  scan ๋ณ€์ˆ˜์ด๋‹ค.

-> ์ถ”๊ฐ€๋กœ next()๋Š” ์ž…๋ ฅ๋ฐ›์€ ๋‚ด์šฉ ์ค‘์—์„œ ๊ณต๋ฐฑ ๋ฌธ์ž ์ „๊นŒ์ง€๋งŒ ์ถœ๋ ฅํ•œ๋‹ค(ex. Hello world -> Hello)

-> ์ถ”๊ฐ€๋กœ, Scanner ํด๋ž˜์Šค๋กœ ์ž…๋ ฅ ์ŠคํŠธ๋ฆผ์„ ์‚ฌ์šฉํ•˜๋‹ค๊ฐ€ ์‚ฌ์šฉ์ด ๋๋‚˜๋ฉด close() ๋ช…๋ น์–ด๋กœ ๋‹ซ์•„์ฃผ๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. ๋‹ซ์ง€ ์•Š์œผ๋ฉด ๊ณ„์†ํ•ด์„œ ์ž์›์„ ์‚ฌ์šฉํ•˜๋Š” ์ƒํƒœ๊ฐ€ ๋˜์–ด ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋‚ญ๋น„๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.


2.3. ํ€ด์ฆˆโ˜†

read()๋กœ ์ˆซ์ž๋ฅผ 123์„ ์ž…๋ ฅ๋ฐ›์•„ ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅํ•œ๋‹ค๊ณ  ํ–ˆ์„ ๋•Œ , 1~3์— ๋“ค์–ด๊ฐˆ ์ฝ”๋“œ๋ฅผ ์™„์„ฑํ•ด๋ณด์‹œ์˜ค.

 

์ƒ๊ฐ)

123์ด ๋ณ€์ˆ˜์— ์ €์žฅ๋˜๋Š”๊ฒƒ๋„ ์•„๋‹Œ๋ฐ, ์–ด๋–ป๊ฒŒ ๊ฐ๊ฐ์˜ ๋ช…๋ น์–ด๊ฐ€ 1,2,3์„ ์ˆœ์ฐจ์ ์œผ๋กœ ์ถœ๋ ฅํ•˜์ง€...?

 

ํ’€์ด)

์ž…๋ ฅํ•œ 123\n์€ ๋ฒ„ํผ์— ์ €์žฅ๋˜๋ฉฐ, read๋Š” ๋ฒ„ํผ์—์„œ ํ•œ ๋ฐ”์ดํŠธ์”ฉ ๊บผ๋‚ด์˜ค๋Š” ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•œ๋‹ค.

-> ์ž…๋ ฅ ํ›„ ๋ฐ”๋กœ ์ถœ๋ ฅ๋˜๋Š” ๊ฒƒ ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ, ์‚ฌ์‹ค์€ ์ž…๋ ฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ณผ์ •์ด๋‹ค!

import java.io.IOException;

public class Main{
    public static void main(String[] args) throws IOException{
        System.out.print((char)System.in.read()); //(1)
        System.out.print((char)System.in.read()); //(2)
        System.out.print((char)System.in.read()); //(3)
    }
}

 

์ถ”๊ฐ€๋กœ Scanner์„ ์‚ฌ์šฉํ•˜๋ฉด ์•„๋ž˜์˜ ์ฝ”๋“œ์ฒ˜๋Ÿผ ์ž‘์„ฑํ•˜๋ฉด ๋œ๋‹ค.

import java.io.IOException;
import java.util.Scanner;

public class Main{
    public static void main(String[] args) throws IOException{
        Scanner scan = new Scanner(System.in); //์ž…๋ ฅ ๋ฐ›๊ณ 
        System.out.println(scan.nextLine()); //์ž…๋ ฅ๋ฐ›์€ scan ๊ฐ์ฒด๋ฅผ  ์ถœ๋ ฅํ•œ๋‹ค
    }
}

2.4. ๋งˆ๋ฌด๋ฆฌ

1) ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ

2) ์ถœ๋ ฅ ๋ช…๋ น์–ด - print, printf, println

3) read() - ๊ฐ’์„ 1๋ฐ”์ดํŠธ์”ฉ ์ฝ์–ด์˜ค๋ฉฐ ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ฐ’์„ ์•„์Šคํ‚ค ์ฝ”๋“œ๋กœ ์ถœ๋ ฅ. ์ด๋ฅผ char๋กœ ๋ฐ”๊ฟ”์•ผ ๋ฌธ์ž ์ถœ๋ ฅ ๊ฐ€๋Šฅ

4) ์ž…์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ

5) Scanner ํด๋ž˜์Šค


2.5. ์…€ํ”„ ์ฒดํฌโ˜…โ˜…

์•ž์—์„œ ๋ฐฐ์šด ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ด ์‹คํ–‰ ๊ฒฐ๊ณผ์ฒ˜๋Ÿผ ๋‚ด์šฉ์„ ์ž…๋ ฅ๋ฐ›์•„ ์ถœ๋ ฅํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด ๋ณด์„ธ์š”.

 

๋‚ด๊ฐ€ ์ง  ์ฝ”๋“œ) ํ‹€๋ฆฐ๊ฑด ์•„๋‹˜

๊ฐ ๋ฌธ์žฅ์„ ์„œ๋กœ ๋‹ค๋ฅธ ๋ณ€์ˆ˜๋กœ ๋‘์–ด์•ผํ•  ๊ฒƒ ๊ฐ™์•„์„œ scan1, scan2, scan3๋กœ ๋‚˜๋ˆ„์–ด ์ž…๋ ฅ๋ฐ›์Œ

import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        Scanner scan1 = new Scanner(System.in);
        System.out.println(scan1.nextLine()); //println()์„ ์‚ฌ์šฉํ•˜๋Š”๊ฑฐ ์žŠ์ง€ ๋ง๊ธฐ

        Scanner scan2 = new Scanner(System.in);
        System.out.println(scan2.nextLine());

        Scanner scan3 = new Scanner(System.in);
        System.out.println(scan3.nextLine());
    }
}

 

 

 

์ •๋‹ต ์ฝ”๋“œ)

์ž…๋ ฅ ๋ฐ›๋Š” ์ฝ”๋“œ๋ฅผ ํ•œ ๋ฒˆ๋งŒ ์ž‘์„ฑํ•˜๊ณ , ์ถœ๋ ฅ ๋ช…๋ น์–ด๋ฅผ ์—ฐ์†์œผ๋กœ 3๋ฒˆ ์ž‘์„ฑํ•จ

 

์ดํ•ด๊ฐ€ ์ž˜ ์•ˆ๋˜์—ˆ๋˜ ๋ถ€๋ถ„)

์ฝ”๋“œ๋Š” ์œ„์—์„œ๋ถ€ํ„ฐ ์•„๋ž˜๋กœ ํ•ด์„๋˜๋‹ˆ, System.in์—์„œ ์ž…๋ ฅ๋ฐ›์€ ๋ฌธ์ž์—ด์„ 3๋ฒˆ ๋ฐ˜๋ณตํ•ด์„œ ์ถœ๋ ฅํ•ด์•ผํ•˜๋Š” ๊ฒƒ ์•„๋‹Œ๊ฐ€?

-> Scanner sacn = new Scanner(System.in)์—์„œ ์ž…๋ ฅ์„ ๋ฐ›๋Š” ๊ฒƒ์ด ์•„๋‹˜!! ์ด ๋ถ€๋ถ„์€ ์ž…๋ ฅ ๋ฐ›์„ ์ค€๋น„๋ฅผ ํ•˜๋Š”๊ฑฐ์ž„

-> ์ฒซ ๋ฒˆ์งธ nextLine()์ด ํ˜ธ์ถœ๋˜๋ฉด, ํ”„๋กœ๊ทธ๋žจ์€ ์ž…๋ ฅ์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์ƒํƒœ๋กœ ๋ฉˆ์ถค

-> ์‚ฌ์šฉ์ž๊ฐ€ ํ‚ค๋ณด๋“œ ์ž…๋ ฅ ํ›„ Enter์„ ์น˜๋ฉด ์ž…๋ ฅ ๋ฒ„ํผ์— ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜๊ณ  println()์— ์˜ํ•ด ๋ฐ์ดํ„ฐ๊ฐ€ ์ถœ๋ ฅ๋œ๋‹ค

-> ๋‘ ๋ฒˆ์งธ nextLine()์„ ํ•ด์„ํ•  ๋•Œ๋„ ์œ„์™€ ๊ฐ™์ด ์ž‘์šฉํ•œ๋‹ค.

-> ๋”ฐ๋ผ์„œ System.in์— ์˜ํ•ด ์ž…๋ ฅ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ์ƒํƒœ๊ฐ€ ๋˜๋ฉฐ, ๊ฐ๊ฐ์˜ nextLine()์— ๊ฑธ๋ฆด ๋•Œ๋งˆ๋‹ค ์ž…๋ ฅ ๋Œ€๊ธฐ, ์ถœ๋ ฅ์„ ํ•œ๋‹ค.

import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        System.out.println(scan.nextLine());
        System.out.println(scan.nextLine());
        System.out.println(scan.nextLine());
    }
}

Scanner scan = new Scanner(System.in)
: System.in์ด๋ผ๋Š” ์ž…๋ ฅ ์ŠคํŠธ๋ฆผ์„ Scanner ๊ฐ์ฒด์— ์—ฐ๊ฒฐํ•˜๋Š” ์ฝ”๋“œ์ด๋‹ค. ์ฆ‰ ์ž…๋ ฅ ๋ฐ›์„ ์ค€๋น„๋งŒ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค
-> System.in์— ์†์•„ ์ž…๋ ฅ์„ ๋ฐ›๋Š”๋‹ค๋Š” ์ƒ๊ฐ์€ ๋ฒ„๋ฆฌ์ž.. System.in์€ ํ‚ค๋ณด๋“œ๋กœ๋ถ€ํ„ฐ ์ž…๋ ฅ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก ์—ฐ๊ฒฐ๋œ ์ž…๋ ฅ ์ŠคํŠธ๋ฆผ์ด๋‹ค!!!

System.out.println(scan.nextLine())
: ์‹ค์ œ๋กœ ์ž…๋ ฅ์„ ๋ฐ›๋Š” ๋ถ€๋ถ„์ด๋‹ค. nextLine()์ด ํ˜ธ์ถœ๋˜๋Š” ์ˆœ๊ฐ„ ์ž…๋ ฅ์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๋Œ€๊ธฐ ์ƒํƒœ๊ฐ€ ๋˜๋ฉฐ, ์ž…๋ ฅ ํ›„ Enter์„ ๋ˆ„๋ฅด๋ฉด ๋ฒ„ํผ์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.
-> Scanner์€ ์ž…๋ ฅ์„ ๋ฐ›๋Š” ๋„๊ตฌ์ผ ๋ฟ์ด๋ฉฐ, nextLine(), next() ๊ฐ™์€ ๋ฉ”์„œ๋“œ๋“ค์ด ์‹ค์ œ๋กœ ์ž…๋ ฅ์„ ์ฒ˜๋ฆฌํ•œ๋‹ค.

'๐Ÿฆ– Private > Java Language' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

6์žฅ - ์—ฌ๋Ÿฌ ๊ฐ’ ํ•œ ๋ฒˆ์— ์ €์žฅํ•˜๊ธฐ: ๋ฐฐ์—ด  (0) 2025.03.05
5์žฅ - ๊ฐ™์€ ์ž‘์—… ๋ฐ˜๋ณตํ•˜๊ธฐ: ๋ฐ˜๋ณต๋ฌธ  (1) 2025.02.19
4์žฅ - ์กฐ๊ฑด์— ๋”ฐ๋ผ ํ๋ฆ„ ๋ฐ”๊พธ๊ธฐ: ์กฐ๊ฑด๋ฌธ  (0) 2025.02.16
3์žฅ - ๊ธฐ์ดˆ ๋ฌธ๋ฒ• ๋ฐฐ์šฐ๊ธฐ  (0) 2025.02.13
1์žฅ - Hello, Java!  (1) 2025.02.11
'๐Ÿฆ– Private/Java Language' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • 5์žฅ - ๊ฐ™์€ ์ž‘์—… ๋ฐ˜๋ณตํ•˜๊ธฐ: ๋ฐ˜๋ณต๋ฌธ
  • 4์žฅ - ์กฐ๊ฑด์— ๋”ฐ๋ผ ํ๋ฆ„ ๋ฐ”๊พธ๊ธฐ: ์กฐ๊ฑด๋ฌธ
  • 3์žฅ - ๊ธฐ์ดˆ ๋ฌธ๋ฒ• ๋ฐฐ์šฐ๊ธฐ
  • 1์žฅ - Hello, Java!
SONOTREE
SONOTREE
@-@
  • SONOTREE
    SONOTRI
    SONOTREE
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (73)
      • ๐ŸŒฒ Dreamhack (19)
        • System Hacking (2)
        • Web Hacking (4)
        • Reverse Engineering (11)
        • Digital Forensics (2)
      • ๐Ÿฆ– Private (20)
        • C Language (2)
        • Java Language (6)
        • LinuxMaster (1)
        • webhacking.kr (3)
        • bandit (4)
        • CTF Wriet-Up (3)
        • GoN Club Study (1)
      • ๐Ÿ  Public (13)
        • Development (2)
        • web (8)
        • forensic (0)
        • elif (3)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
SONOTREE
2์žฅ - ์ž…์ถœ๋ ฅ ๋‹ค๋ฃจ๊ธฐ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”