728x90






package main;
import java.io.IOException;
public class Ex1 {
public static void main(String[] args) {
System.out.println("알파벳 하나를 쓰고 Enter 누르세요.");
int i;
try {
i = System.in.read();
System.out.println(i);
System.out.println((char) i);
} catch (IOException e) {
System.out.println(e);
}
}
}

- system.out 은 출력장치이고 system.in 은 입력장치이다.
- 입출력 시 발생할 수 있는 예외처리를 IOException 으로 처리해주고 값을 입력받고 입력받은 값으로 다양한 처리를 해줄 수 있다.

- system.in.read( ) 메소드의 단점은 문자열을 읽을 수 없다는 점이다.
- Scanner 클래스를 이용하면 문자열뿐만 아니라 다양한 자료형을 입력받을 수 있다.
- Scanner 클래스는 시스템을 인자로 받아서 데이터를 입력받을 수 있다.

package main;
import java.util.Scanner;
public class Ex2 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("이름 : ");
String name = scanner.nextLine();
System.out.println("직업 : ");
String job = scanner.nextLine();
System.out.println("사번 : ");
int num = scanner.nextInt();
System.out.println(name);
System.out.println(job);
System.out.println(num);
scanner.close();
}
}

- Scanner 클래스를 활용하면 다양한 자료형을 입력받을 수 있다. 아주 편리한 클래스이다.
연습문제
대소문자 상관없이 stop 이 입력되면 프로그램이 종료되도록 하시오.
package quiz;
import java.util.Scanner;
public class Quiz1 {
public static void main(String[] args) {
while (true) {
System.out.println("종료합니까? (stop입력)");
Scanner scanner = new Scanner(System.in);
String isEnd = scanner.nextLine();
if (isEnd.equalsIgnoreCase("STOP")) {
System.out.println("program is over");
break;
}
}
}
}


- equalsIgnoreCase 를 사용해야 우리가 생각하는 대로 작동하는 것을 볼 수 있다. == 를 사용하면 논리적 동일성이 아니라 물리적 동일성을 판단하기 때문에 객체인 isEnd 와 "STOP" 은 물리적으로 다른 값을 갖고 있기 때문에 False 로 출력되게 된다. String 에 대해서 논리적 동일성을 판단하기 위해서는 equals 메서드를 활용해야 한다.
'[그린컴퓨터] Server > JAVA(자바 JDK)' 카테고리의 다른 글
| 문자 단위 스트림 { Reader, Writer } (0) | 2023.07.05 |
|---|---|
| 바이트 단위 스트림 { InputStream, OutputStream } (0) | 2023.07.05 |
| 예외처리 { 예외클래스, 예외처리, 컴파일러의 예외체크, 예외처리미루기 } (0) | 2023.07.04 |
| 스트림 { 개요, 중간연산과 최종연산, 연산 종류, 연습문제 } (0) | 2023.07.04 |
| 람다식 { 함수형 프로그래밍, 람다식, 연습문제 } (0) | 2023.07.03 |