안녕하세요 자바칩 프라푸치노입니다.
오늘은 스캐너 클래스 2탄을 해보겠습니다.
1. double타입 입력받기
2. 문자열 입력받기
3. 버퍼비우기
4. 문자열을 int타입으로 변환
스캐너로 입력받기 위해서는 먼저
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
package sec01_exam;
import java.util.Scanner;
public class ScannerEx2 {
public static void main(String[] args) {
//입력 스트림을 사용하겠다고 Scanner클래스를 생성함(콘솔로부터 입력)
Scanner scanner = new Scanner(System.in);
scanner.close();
}
}
|
cs |
요렇게 입력을 하고, 닫아주어야 한다고 했죠!.
이 전 글을 보고 싶으시다면 이 글을 보고 와주세요!
2020/09/06 - [§개발자 되기 프로젝트§/java 실습] - 자바 변수 기본 예제5 - Scanner클래스, 사용자에게 입력받기
이번에는 double타입을 입력받아 보겠습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
package sec01_exam;
import java.util.Scanner;
public class ScannerEx2 {
public static void main(String[] args) {
//입력 스트림을 사용하겠다고 Scanner클래스를 생성함(콘솔로부터 입력)
Scanner scanner = new Scanner(System.in);
System.out.print("실수를 하나 입력해주세요.>");
double dnum1 = scanner.nextDouble();
System.out.print("실수를 하나 입력해주세요.>");
double dnum2 = scanner.nextDouble();
double result = dnum1 - dnum2;
System.out.println("dnum1- dnum2 : " + result);
scanner.close();
}
}
|
cs |
요렇게 double타입을 입력받고 싶으면
scanner.nextDouble();메서드를 사용하시면 됩니다.
요렇게 출력이 되었네요.
이번에는 String 문자열 타입을 입력받아 보겠습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
package sec01_exam;
import java.util.Scanner;
public class ScannerEx2 {
public static void main(String[] args) {
//입력 스트림을 사용하겠다고 Scanner클래스를 생성함(콘솔로부터 입력)
Scanner scanner = new Scanner(System.in);
System.out.print("문자열을 입력해주세요.>");
String str1 = scanner.nextLine(); // nextLine() 엔터까지 다 인식
System.out.println("입력 받은 문자열 : " + str1);
System.out.print("문자열을 입력해주세요.>"); String str2 = scanner.next(); // next() 공백앞까지 인식 System.out.println("입력 받은 문자열 : " + str2); scanner.close();
}
}
|
cs |
String타입을 입력받는 메서드는 scanner.next(); 와
scanner.nextLine();이렇게 두개가 있는데요
next는 공백 앞까지만 입력을 받고, nextLine은 공백도 모두 입력받고 엔터치기 까지 입력을 받는 것입니다.
"안녕하세요 자바칩 프라푸치노입니다."
를 두개 다 메서드를 사용해 입력받아 보겠습니다.
역시나 이렇게 나타났습니다.
그러면 그 밑에 추가로 이렇게 쳐보겠습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
package sec01_exam;
import java.util.Scanner;
public class ScannerEx2 {
public static void main(String[] args) {
//입력 스트림을 사용하겠다고 Scanner클래스를 생성함(콘솔로부터 입력)
Scanner scanner = new Scanner(System.in);
System.out.print("문자열을 입력해주세요.>");
String str1 = scanner.nextLine();
System.out.println("입력 받은 문자열 : " + str1);
System.out.print("문자열을 입력해주세요.>");
String str2 = scanner.next();
System.out.println("입력 받은 문자열 : " + str2);
System.out.print("숫자를 입력해주세요>");
String str3 = scanner.nextLine();
System.out.println("입력받은 문자열 : " + str3);
scanner.close();
}
}
|
cs |
이렇게 밑에 숫자를 입력해주세요를 쳤습니다.
숫자를 문자열 타입으로 받겠다했으니 숫자도 문자열로 나오겠네요.
그럼 출력을 해볼까요?
이게 무슨일인가요!
숫자를 입력해주세요 다음에 우리가 숫자를 입력해야하는데
이렇게 이상하게 나와버렸네요!
그 이유는 버퍼비우기를 안해서 그렇습니다.
nextLine 메서드는 엔터까지 다 출력을 한다고 했죠.
그런데 우리가 위에서 이미 엔터를 쳤습니다.
str2를 치고나서 엔터를 쳤습니다.
str2는 next메서드이기 때문에 아무리 길게 써도 공백앞까지만 출력하고 떠난다고 했죠.
그런데 어쨋든 우리는 글을 다 치고 엔터를 쳤기 때문에
그 밑에 있는 nextLine에서 받아서 출력을 한 것입니다.
그렇다면
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
package sec01_exam;
import java.util.Scanner;
public class ScannerEx2 {
public static void main(String[] args) {
//입력 스트림을 사용하겠다고 Scanner클래스를 생성함(콘솔로부터 입력)
Scanner scanner = new Scanner(System.in);
System.out.print("문자열을 입력해주세요.>");
String str1 = scanner.nextLine();
System.out.println("입력 받은 문자열 : " + str1);
System.out.print("문자열을 입력해주세요.>");
String str2 = scanner.next();
System.out.println("입력 받은 문자열 : " + str2);
scanner.nextLine();//버퍼 비우기
System.out.print("숫자를 입력해주세요>");
String str3 = scanner.nextLine();
System.out.println("입력받은 문자열 : " + str3);
scanner.close();
}
}
|
cs |
이렇게 중간에 버퍼비우기를 해주면 정상적으로 출력이 되겠습니다.
엔터치는거 까지 받아주는 거를 하나 더 넣어준다 이말입니다.
이렇게 정상적으로 출력이 되었네요.
마지막으로 String타입으로 받은 문자열을 int타입으로 바꾸는 작업을 해보겠습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
package sec01_exam;
import java.util.Scanner;
public class ScannerEx2 {
public static void main(String[] args) {
//입력 스트림을 사용하겠다고 Scanner클래스를 생성함(콘솔로부터 입력)
Scanner scanner = new Scanner(System.in);
System.out.print("문자열을 입력해주세요.>");
String str1 = scanner.nextLine();
System.out.println("입력 받은 문자열 : " + str1);
System.out.print("문자열을 입력해주세요.>");
String str2 = scanner.next();
System.out.println("입력 받은 문자열 : " + str2);
scanner.nextLine();//버퍼 비우기
System.out.print("숫자를 입력해주세요>");
String str3 = scanner.nextLine();
System.out.println("입력받은 문자열 : " + str3);
int value = Integer.parseInt(str3);
int result = value +1000;
System.out.println("연산 결과 : " + result);
scanner.close();
}
}
|
cs |
밑에 네 줄을 보시면 되는데요,
Integer.parseInt();메서드를 사용했네요.
그러니까 int타입 변수 value는 위에서 str3에 입력했던 문자열(숫자)를
진짜 숫자인 int타입으로 바꾼 값이 저장되겠구요,
result는 value 에 1000이 더해진 값이 나오겠네요.
확인해볼까요?
짠 이렇게 출력되었습니다.
오늘은 좀 긴 포스팅이었는데요!
도움이 되었으면 좋겠습니다.
감사합니다.
'JAVA > java 실습' 카테고리의 다른 글
[자바JAVA] 연산자 - 증감연산자, 전위 증감연산자, 후위 증감연산자 (0) | 2020.09.15 |
---|---|
[자바JAVA] 변수 기본 예제8 - printf, 소수점 _째자리까지 나타내는 법, (0) | 2020.09.09 |
[자바JAVA]변수 기본 예제5 - Scanner클래스, 사용자에게 입력받기 (0) | 2020.09.06 |
[자바JAVA]변수 기본 예제4 - String 참조변수 출력하기, 더하기 (0) | 2020.09.06 |
[자바JAVA] 변수 기본 예제3 - 참조변수, String의 toString, 주소값 (0) | 2020.09.05 |