๐ nextInt() ๋ค์์ nextLine()์ด ์นํ๋ ์ด์
Scanner ๋ฅผ ์ฐ๋ค๋ณด๋ฉด ๋ถ๋ช
ํ ์ฝ๋๋ฅผ ๋ง๊ฒ ์งฐ๋๋ฐ, ์
๋ ฅ์ ๋ฐ์ง๋ ์๊ณ ๊ทธ๋ฅ ๋์ด๊ฐ ๋๊ฐ ์์ต๋๋ค.
๊ทธ ์ด์ ๊ฐ ๋๋ฌด ๊ถ๊ธํด์ ํ๋ฒ ๊ณต๋ถํด๋ดค์ต๋๋ค. ๐คฃ
์ ๊ฐ ๋ง๋ฌ๋ ํ์..๐ฑ
์๋ ์ฝ๋๋ฅผ ์คํํ๋ฉด ์ด์ํ ์ผ์ด ๋ฒ์ด์ง๋๋ค.
Scanner sc = new Scanner(System.in);
System.out.print("๋์ด ์
๋ ฅ: ");
int age = sc.nextInt();
System.out.print("์ด๋ฆ ์
๋ ฅ: ");
String name = sc.nextLine(); // ์
๋ ฅ์ฐฝ ์๋ธ(๋์ด๊ฐ์ง)
System.out.println("๋์ด: " + age);
System.out.println("์ด๋ฆ: " + name);
๐ฅ ์ถ๋ ฅ
๋์ด ์
๋ ฅ: 25
์ด๋ฆ ์
๋ ฅ:
๋์ด: 25
์ด๋ฆ: โ ๋น ๋ฌธ์์ด!์ด๋ฆ์ ์ ๋ ฅํ ํ๋ ์์ด ๋น ๋ฌธ์์ด์ด ์ ์ฅ๋ฉ๋๋ค. ๐คฏ
๐บ ๋ฒ์ธ์ ๋ฒํผ์ ๋จ๊ฒจ์ง \n
์ฝ์์ "25" ๋ฅผ ์น๊ณ Enter๋ฅผ ๋๋ฅด๋ ์๊ฐ, ๋ฒํผ์ ์ ์ฅ๋๋ ๊ฑด 25\n์
๋๋ค.
์ฌ๊ธฐ์ nextInt()์ nextLine()์ด ๋ฒํผ๋ฅผ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ๋์ง๊ฐ ํต์ฌ์
๋๋ค.
๐ธ nextInt()์ ํ๋
nextInt()๋ ํ ํฐ(Token) ๋จ์๋ก ์ฝ์ต๋๋ค.
๋ฒํผ: [ 2 ][ 5 ][ \n ]
----------
โโโ
nextInt()๊ฐ ๊ฐ์ ธ๊ฐ๋ ๊ฒ
"25"๋ง ์ ๊ฐ์ ธ๊ฐ๊ณ , "\n"์ ๋ฒํผ์ ๊ทธ๋๋ก ๋จ๊ฒจ๋ก๋๋ค.
๐ธ nextLine()์ ํ๋
nextLine()์ ํ์ฌ ์์น๋ถํฐ \n์ด ๋์ฌ ๋๊น์ง ์ ๋ถ ์ฝ์ต๋๋ค.
๋ฒํผ: [ \n ] โ nextInt()๊ฐ ๋จ๊ธฐ๊ณ ๊ฐ ๊ฒ
โ
"์ด, ๋ฐ๋ก \n์ด๋ค? ๋ค ์ฝ์๋ค!" โ ๋น ๋ฌธ์์ด ๋ฐํnextLine() ์
์ฅ์์ ์ต์ธํ ๊ฒ๋ ์์ต๋๋ค. ์ํค๋ ๋๋ก ํ์ ๋ฟ์ด๋๊น์ใ
ใ
๐
โน๏ธ ์ ๋ ฅ ๋ฒํผ(Input Buffer)๋?
ํค๋ณด๋๋ก ์ ๋ ฅํ ๋ฐ์ดํฐ๊ฐ ํ๋ก๊ทธ๋จ์ ์ ๋ฌ๋๊ธฐ ์ ์ ์ ์ ๋๊ธฐํ๋ ์์ ์ ์ฅ ๊ณต๊ฐ์ ๋๋ค. Scanner๋ ์ด ๋ฒํผ์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์ต๋๋ค.
โน๏ธ ํ ํฐ(token)์ด๋?
๊ณต๋ฐฑ, ํญ, ๊ฐํ ๋ฌธ์(\n)๋ก ๊ตฌ๋ถ๋ ๋ฉ์ด๋ฆฌ์
๋๋ค.
๐ค ์ nextInt()๋ \n์ ์ ๋จน์๊น์?
nextInt()๋ ๋ด๋ถ์์ ์๋์ ๊ฐ์ด ๋์ํด์!
1๏ธโฃ ์์ชฝ ๊ตฌ๋ถ์ ๊ฑด๋๋ฐ๊ธฐ
๊ณต๋ฐฑ, ํญ, \n ๋ฑ ๊ตฌ๋ถ์๊ฐ ์์ ์์ผ๋ฉด ์ ๋ถ ์คํตํฉ๋๋ค.
๋ฒํผ: [ \n ][ 2 ][ 5 ][ \n ]
โ ์ปค์
โ ์์ชฝ \n ์คํต
๋ฒํผ: [ \n ][ 2 ][ 5 ][ \n ]
โ ์ปค์ ์ด๋
2๏ธโฃ ๋ค์ ๊ตฌ๋ถ์ ์ง์ ๊น์ง ์ฝ๊ธฐ
๊ตฌ๋ถ์๊ฐ ์๋ ๋ฌธ์๋ฅผ ์ฝ๋ค๊ฐ, ๊ตฌ๋ถ์๊ฐ ๋์ค๋ฉด ๊ทธ ์ง์ ์์ ๋ฉ์ถฅ๋๋ค.
๋ฒํผ: [ 2 ][ 5 ][ \n ]
โ ์์
'2', '5' ์ฝ๊ธฐ โ '\n' ๋ฐ๊ฒฌ โ ์ ์ง
๋ฒํผ: [ 2 ][ 5 ][ \n ]
โ ์ปค์ (์ฌ๊ธฐ์ ๋ฉ์ถค)
3๏ธโฃ ํ ํฐ ๋ฐํ, ๊ตฌ๋ถ์๋ ๊ทธ๋๋ก
"25"๋ฅผ int๋ก ๋ณํํด์ ๋ฐํํฉ๋๋ค. ์ปค์๋ \n ์์ ๊ทธ๋๋ก ๋จธ๋ญ
๋๋ค.
๋ฐํ๊ฐ: 25
๋ฒํผ: [ \n ] โ ์๋ฌด๋ ์ ๊ฑด๋๋ฆฐ ์ฑ๋ก ๋จ์์์
โ ์ปค์
์ฌ๊ธฐ์ nextLine()์ ํธ์ถํ๋ฉด ์ปค์๊ฐ \n์ ๋ฐ๋ก ๋ง๋๋ฒ๋ฆฝ๋๋ค.
๋น ๋ฌธ์์ด์ ๋ฐํํ๊ณ ๋๋๋ ์ด์ ๊ฐ ์ด๊ฒ ์
๋๋ค..๐ต
โ ๏ธ ๊ฐ์ ๋ฌธ์ ๊ฐ ์๊ธฐ๋ ๋ค๋ฅธ ๋ฉ์๋
| ์กฐํฉ | nextLine() ์นํ ์ฌ๋ถ |
|---|---|
nextDouble() |
โ ๏ธ ์นํ |
nextLong() |
โ ๏ธ ์นํ |
next() |
โ ๏ธ ์นํ |
โน๏ธ ๊ณต์ ์ค๋ช (Java SE 8 ๋ฌธ์)
ํ ํฐ ๊ธฐ๋ฐ ๋ฉ์๋๋ค์ ๊ตฌ๋ถ์(delimiter)๋ฅผ ์๋นํ์ง ์์ต๋๋ค.
๊ธฐ๋ณธ ๊ตฌ๋ถ์๋ ๊ณต๋ฐฑ, ํญ, ๊ฐํ ๋ฌธ์(\n)๋ฅผ ํฌํจํ ๋ชจ๋ ๊ณต๋ฐฑ ๋ฌธ์(whitespace)์
๋๋ค.
๐ ํด๊ฒฐ ๋ฐฉ๋ฒ
1๏ธโฃ ๋น nextLine()์ผ๋ก ์ฒญ์ํ๊ธฐ
๊ฐ์ฅ ๊ฐ๋จํ ๋ฐฉ๋ฒ์
๋๋ค!! nextInt() ์งํ nextLine()์ ํ ๋ฒ ๋ ํธ์ถํด์ ๋ฒํผ์ ๋จ์ \n์ ์ ๊ฑฐํด์ค๋๋ค.
๊ด์ฐฎ์ ๋ฐฉ๋ฒ์ด์ง๋ง, ๊น๋จน์ผ๋ฉด ๋ฒ๊ทธ๊ฐ ์ฌ๋ฐํ๋ค๋ ๋จ์ ์ด ์์ด์.๐ฑ
int age = sc.nextInt();
sc.nextLine(); // ๐งน ๋ฒํผ ์ฒญ์
String name = sc.nextLine(); // ์ด์ ์ ์ ์๋
2๏ธโฃ nextLine() + ํ์ฑ (๊ถ์ฅ) โ
๋ ๊น๋ํ๊ณ ์์ ํ ๋ฐฉ๋ฒ์
๋๋ค. ๋ชจ๋ ์
๋ ฅ์ nextLine()์ผ๋ก ๋ฐ๊ณ , ์ซ์๊ฐ ํ์ํ ๋ ์ง์ ๋ณํํฉ๋๋ค.
System.out.print("๋์ด ์
๋ ฅ: ");
int age = Integer.parseInt(sc.nextLine()); // String โ int ๋ณํ
System.out.print("์ด๋ฆ ์
๋ ฅ: ");
String name = sc.nextLine(); // ์ ์ ์๋
โ ๏ธ NumberFormatException ์ฃผ์
์ซ์๊ฐ ์๋ ๊ฐ์ ์
๋ ฅํ๋ฉด NumberFormatException์ด ๋ฐ์ํฉ๋๋ค. ์ค์ ์๋น์ค์์๋ try-catch๋ก ์์ธ ์ฒ๋ฆฌ๋ฅผ ํด์ฃผ์ธ์.
โ ๋ง๋ฌด๋ฆฌ
| ๋ฉ์๋ | ์ฝ๋ ๋จ์ | \n ์๋น ์ฌ๋ถ |
|---|---|---|
nextInt() |
ํ ํฐ (์ ์) | โ ์๋น ์ ํจ |
next() |
ํ ํฐ (๋ฌธ์์ด) | โ ์๋น ์ ํจ |
nextLine() |
ํ ์ค ์ ์ฒด | โ ์ฝ๊ณ ๋ฒ๋ฆผ (๋ฐํ๊ฐ ๋ฏธํฌํจ) |
๐ ์ฐธ๊ณ ์๋ฃ
'Programming > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| Java hashcode()์ ๋ํด (0) | 2026.03.16 |
|---|---|
| JAVA ๋ฌธ์์ด(String) ๋ฉ์๋ ์ ๋ฆฌ (0) | 2025.10.09 |
| ์ธํฐํ์ด์ค (Interface) (0) | 2025.05.14 |
| ์ถ์ ํด๋์ค(Abstract Class) (0) | 2025.05.14 |
| Java์ ์กฐ๊ฑด๋ฌธ (0) | 2025.05.01 |