Criming
코딩으로 업삼기
Criming
전체 방문자
오늘
어제
  • 분류 전체보기 (29)
    • Programming (28)
      • Spring (5)
      • Database (2)
      • JSP (6)
      • Java (10)
      • 탐구 및 해결 (1)
      • 연습문제 (3)
      • 예제 (1)
    • 자격증 (0)
    • 기타 (1)
      • 블로그 운영 (0)
      • 문서 (1)

블로그 메뉴

  • 홈
  • 태그

공지사항

인기 글

태그

  • ec2
  • Eclipse
  • param
  • jsp
  • main()
  • Java EE
  • Java SE
  • forward
  • jre
  • jvm
  • json
  • spring
  • JDK
  • print()
  • aws
  • Escape문자
  • try-catch
  • ASCII
  • 표현언어
  • printf()
  • Tomcat
  • HttpuURLConnection
  • 아스키코드
  • 인스턴스
  • println()
  • System.out
  • sendRedirect
  • java
  • 자바규칙
  • redirect

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Criming

코딩으로 업삼기

Programming/Java

[JAVA] 입력클래스 System.in 와 Scanner

2022. 10. 4. 02:09

System.in.read( )

  • 문자를 하나씩만 가져올 수 있다.
  • 입력받은 값 중 첫번째 문자를 아스키코드 값을 기준으로 십진수로 표현해준다.
  • 정수형(int)으로 입력한 값을 그대로 가져올 때는 아스키 코드 번호에 48를 빼주면 된다.
  • 영문대문자 문자형을 소문자로 출력하고 싶으면 아스키 코드 번호에 32를 더해주면 된다.
  • 문자형(char)로 가져올 때는 아스키 코드를 캐스팅으로 형변환해면 된다.
  • 예외처리를 해주어야한다.

 

예제1) 위 특징들 예제로 살펴보기

import java.io.IOException;
// import java.io.IOException;와 throws IOExceptionsms는 예외처리를 위한 구문

public class Ex2 {

	public static void main(String[] args) throws IOException {
		int data1, data2, data3, data4, data5;
		System.out.print("첫번째 데이터 입력 : ");
		data1 = System.in.read();
		System.out.println("첫번째 데이터 출력 : " + data1);
		System.in.read();System.in.read(); // 문자 하나만 입력받기 위해 임시작성함.
		
		System.out.print("두번째 데이터 입력 : ");
		data2 = System.in.read();
		System.out.println("두번째 데이터 출력 : " + (char)data2);
		System.in.read();System.in.read();
		
		System.out.print("세번째 데이터 입력 : ");
		data3 = System.in.read();
		System.out.println("세번째 데이터 출력 : " + (int)data3);
		System.in.read();System.in.read();
		
		System.out.print("네번째 데이터 입력 : ");
		data4 = System.in.read();
		System.out.println("네번째 데이터 출력 : " + (data4-48));
		System.in.read();System.in.read();

		System.out.print("다섯번째 데이터 입력 : ");
		data5 = System.in.read();
		System.out.println("다섯번째 데이터 출력 : " + (char)(data5+32));

	}
}

 

Scanner 클래스

Scanner클래스는 자바에서 배우는 기초적인 입력클래스로 객체를 생성 후 사용해야하며, 아래와 같은 여러 메서드들이 있다.

이 메서드들을 사용하면 원하는 자료형으로 변환하는 수고는 하지 않아도 된다.

 

input.next();

input.nextLine();          *해당 메서드는 줄바꿈(enter키)만 입력 끝값으로 인식하지만,

                                     이 외에 메서드는  띄어쓰기(space키)도 입력 끝으로 인식하므로 주의해야한다.

input.nextInt(); 
input.nextDouble();
input.nextByte();
input.nextShort();
input.nextLong();
input.nextBoolean();
input.nextFloat();

 

예제1) input.next() 와 input.nextLine() 메서드의 차이

import java.util.Scanner; // Scanner클래스를 사용하기 위해 추가

public class Ex3 {

	public static void main(String[] args) {
		// Scanner : 자료형, 참조자료형
		// input : 변수이름, 참조변수, 담기는 값은 참조(주소)값
		// new : 메모리에 공간 확보 후 Scanner 클래스의 내용을 담음. 
		Scanner input;
		input = new Scanner(System.in); // Scanner클래스 객체 생성
		System.out.println("참조 값 : " + input);
		
		System.out.print("데이터 입력 : ");
		String data = input.next();
		System.out.println("입력 받은 데이터 : " + data);
		
		input.nextLine(); // next 먼저 사용하게되면 공백을 인식하여 출력오류 생기므로 한번더 해줘야한다.
		System.out.print("데이터 입력 : ");
		data = input.nextLine();
		System.out.println("입력 받은 데이터 : " + data);
		input.close();
		/* 
		 	문자열 입력 받을 때 사용하는 메서드
			input.next(); --> 공백(space키)과 줄바꿈(enter키)을 입력 문자열의 끝으로 사용
			input.nextLine(); --> 줄바꿈만 입력 문자열의 끝으로 사용
		*/
		
	}
}

 

예제2) Scanner의 여러 메서드 사용

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 );
		
		System.out.print("체중 : ");
		double weight = sc.nextDouble();
		System.out.print("키 : ");
		float height = sc.nextFloat();
		
		System.out.println("체중 : " + weight);
		System.out.println("키 : " + height);
        
		sc.close(); // Scanner 객체 닫기
	}
}

 

예제3)  n번째 데이터 값 사용하는 메서드 : charAt(n-1) 사용해보기

import java.util.Scanner;

public class Ex6 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		System.out.print("문자 입력 : ");
		String data = sc.next();
		char charData1 = data.charAt(0);
		char charData2 = data.charAt(4);
		
		System.out.println("입력 받은 첫번째 문자 출력 : " + charData1);
		System.out.println("입력 받은 다섯번째 문자 출력 : " + charData2);
		
		sc.close();
	}
}

 

예제4)  세과목  점수 입력하여 합계구하기

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.nextLine();
		
		System.out.print(name + " 님의 국어 점수 : ");
		int subject1 = sc.nextInt();
		System.out.print(name + " 님의 영어 점수 : ");
		int subject2 = sc.nextInt();
		System.out.print(name + " 님의 수학 점수 : ");
		int subject3 = sc.nextInt();
		
		System.out.println();
		System.out.println("=====================");
		System.out.println("이름 : " + name);
		System.out.println("=====================");
		System.out.println("국어 점수 : " + subject1);
		System.out.println("영어 점수 : " + subject2);
		System.out.println("수학 점수 : " + subject3);
		System.out.println("=====================");
		System.out.println("합계 : " + (subject1+subject2+subject3));
		System.out.println("=====================");
		
		sc.close();
	}
}

'Programming > Java' 카테고리의 다른 글

[JAVA] System.out 출력 클래스 print, println, printf()  (0) 2022.10.03
[JAVA] 메인 메서드, Escape문자, 자바규칙(+카멜케이스)  (0) 2022.09.27
[JAVA] 자바 개발환경 세팅하기(Java, Eclipse)  (0) 2022.09.22
[JAVA] 자바를 시작하며..(JVM, JDK, JRE)  (0) 2022.09.19
[JAVA] 람다 표현식(Lambda Expressions)  (0) 2022.08.19
    'Programming/Java' 카테고리의 다른 글
    • [JAVA] System.out 출력 클래스 print, println, printf()
    • [JAVA] 메인 메서드, Escape문자, 자바규칙(+카멜케이스)
    • [JAVA] 자바 개발환경 세팅하기(Java, Eclipse)
    • [JAVA] 자바를 시작하며..(JVM, JDK, JRE)
    Criming
    Criming

    티스토리툴바