JAVA - System.in.read();와 Scanner (2022-07-07)
2022. 7. 8. 14:02ㆍ3층 1구역 - 개발의 장/JAVA
1. System. in .read ();
문자를 아스키코드 값을 기준으로 십진수로 표현해주는 명령어
2. 아스키코드??
3. System. in .read ();의 활용
package inputs;
import java.io.IOException; //throws IOException와 import java.io.IOException;은 예외처리를 위한 구문
public class Ex2 {
public static void main(String[] args) throws IOException{
int data1, data2, data3;
System.out.print("첫번쩨 데이터 입력 : ");
data1 = System.in.read();
System.out.println("첫번째 데이터 출력 : " + data1);
System. in .read (); System. in .read (); /*문자 하나를 입력 받아 해당하는 정수형으로 변환
엔터키를 누르면 엔터값이 출력되기 때문에 이를 없애기 위해
System. in .read (); 2번 입력*/
System.out.print("두번쩨 데이터 입력 : ");
data2 = System.in.read();
System.out.println("두번째 데이터 출력 : " + (char)data2); //char는 문자를 나타내기 위함.
System. in .read (); System. in .read ();
System.out.print("세번쩨 데이터 입력 : ");
data3 = System.in.read();
System.out.println("세번째 데이터 출력 : " + (int)data3); //int는 정수를 나타내기 위함.
}
}
결과
첫번쩨 데이터 입력 : a
첫번째 데이터 출력 : 97
두번쩨 데이터 입력 : b
두번째 데이터 출력 : b
세번쩨 데이터 입력 : c
세번째 데이터 출력 : 99
4. Scanner의 활용
package inputs;
import java.util.Scanner; //Scanner를 사용하기 위한 구문.
public class Ex3 {
public static void main(String[] args) {
// Scanner : 자료형, 참조자료형
// input : 변수이름, 참조변수, 담기는 값은 참조(주소)값
// new : 메모리에 공간 확보 후 Scanner 클래스의 내용을 담음.
// 기본 자료형 : int, char, boolen....
Scanner input;
input = new Scanner(System.in);
System.out.println("참조 값" + input);
System.out.print("데이터 입력 : ");
String data = input.nextLine();
System.out.println("입력 받은 데이터 : " + data);
System.out.print("데이터 입력 : "); //데이터를 입력 하고 엔터를 친다.
data = input.next(); //데이터를 접수 받는다. 테이터 입력시 '띈 공간'도 '엔터로 인식'하기 때문에 '데이터 입력' 이라는 데이터를 입력 했을 때, '데이터'만 출력.
System.out.println("입력 받은 데이터 : " + data); //데이터를 출력한다.
//문자열 입력 받을 떄 사용하는 메소드
//input.next(); -->> 공백(space키)과 줄바꿈(enter키)을 입력 문자열의 끝으로 사용
//input.nextLine(); -->> 줄바꿈(enter키)만 입력 문자열의 끝으로 사용
//input.nextInt();
//input.nextDouble();
//input.nextByte();
//input.nextShort();
//input.nextLong();
//input.nextBoolean();
//input.nextFloat();
/*
* 문자열 입력 받을 때 사용하는 메소드
* input.next(); --> 공백(스페이스)과 줄바꿈(엔터)을 입력 문자열의 끝으로 사용
* input.nextLine(); --> 줄바꿈(엔터)만 입력 문자열의 끝으로 사용
*/
}
}
4-1. Scanner를 활용한 예제
package inputs;
import java.util.Scanner;
public class Ex4 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("정수 입력 : ");
int data = sc.nextInt();
System.out.println("입력받은 데이터 : " + data);
sc.close();
}
}
package inputs;
import java.util.Scanner;
public class Ex5 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("체중 : ");
double weight = sc.nextDouble();
System.out.print("키 : ");
float height = sc.nextFloat();
System.out.println("체중 : " + weight);
System.out.println("키 : " + height);
sc.close();
}
}
5. Quiz
1번 대문자를 입력해보고 그 대문자의 소문자로 변환해보세요.
문자 입력 : A
==== 출 력 ====
입력하신 문자 : A
소문자로 변환 : a
package inputs;
import java.io.IOException;
public class Quiz1 {
public static void main(String[] args) throws IOException{
char data;
System.out.print("문자 입력 : ");
data = (char) System.in.read();
System.out.println("==== 출 력 ====");
System.out.println("입력하신 문자 : " + data);
System.out.println("소문자로 변환 : " + (char)(data+32));
}
}
2번 어떤 사람의 국,영,수 점수와 합계를 구해보세요.
당신의 이름은 무엇입니까? : 홍길동
홍길동님의 국어 점수 : 100
홍길동님의 영어 점수 : 98
홍길동님의 수학 점수 : 70
==============
이름 : 홍길동
==============
국어 : 100
영어 : 98
수학 : 70
==============
합계 : 268
==============
package inputs;
import java.util.Scanner;
public class Quiz3 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("당신의 이름은 무엇입니까? : ");
String name = sc.next();
System.out.print(name + "님의 국어 점수 : ");
int kor = sc.nextInt();
System.out.print(name + "님의 영어 점수 : ");
int eng = sc.nextInt();
System.out.print(name + "님의 수학 점수 : ");
int math = sc.nextInt();
System.out.println("==============");
System.out.println("이름 : " + name );
System.out.println("==============");
System.out.println("국어 : " + kor);
System.out.println("영어 : " + eng);
System.out.println("수학 : " + math);
System.out.println("==============");
System.out.println("합계 : " + (kor+eng+math));
System.out.println("==============");
sc.close();
}
}
'3층 1구역 - 개발의 장 > JAVA' 카테고리의 다른 글
JAVA - Scanner의 활용 예제 (2022-07-08) (0) | 2022.07.09 |
---|---|
JAVA - next와 nextLine 메소드의 차이(2022-07-07) (0) | 2022.07.09 |
JAVA - 변수와 자료형의 기본 개념 (2022-07-06) (0) | 2022.07.08 |
JAVA - JAVA의 툴, 출력과 주석과 사칙연산, ESCAPE문 (2022-07-06) (0) | 2022.07.08 |
2022년 06월 14일(화) JAVA 문법 맨땅 트라이 1일차 (0) | 2022.06.15 |