Class Scanner
안녕하세요 LEGAS 입니다. :)
공부한 내용을 포스팅하면서 해커랭크라는 문제푸는 사이트를 알게되었습니다. 그곳에서 문제를 풀면서 풀이중 몰랐던 내용과 문제를 풀었던 내용을 포스팅하겠습니다.
1. Class Scanner
Scanner 클래스는 화면으로부터 데이터를 입력
받는 기능을 제공하는 클래스입니다.
이때까지 공부했던 코딩들은 코드를 입력하고 마지막에 System.out.println();
으로 출력하는것만 했지만,
Scanner는 출력과 반대인 입력을 하게해주는 클래스입니다.
예시
Scanner scanner = new Scanner(System.in);
String myString = scanner.next();
int myInt = scanner.nextInt();
scanner.close();
System.out.println("myString is: " + myString);
System.out.println("myInt is: " + myInt);
Java에서는 클래스를 사용하기위해 import를 통해서 추가를 해줘야합니다. 방법은 아래 그림과 같이 해도되고,
다른 한가지 방법은 직접 import를 해줘도 됩니다.
package com.pakage;
import java.util.Scanner; // 직접 입력하여 import하기
public class Main {
public static void main(String[] args) {
}
}
이렇게 직접 입력하여 메인클래스위에 import를 해줘됩니다.
2. Class 객체 생성
클래스를 사용할때 객체를 생성해야만 기능을 사용할 수 있는것이 있고 아닌 클래스도 있습니다.
예들들어 .println()
메소드와 같은 것은 객체를 생성하지 않아도 되지만 Scanner 클래스는 꼭 객체를 생성해야지만 사용 할 수 있습니다.
Scanner 객체 생성은 아래와 같습니다.
Scanner test = new Scanner();
제가 풀었던 문제는 인풋을 통해 아웃풋에 대한 값을 푸는 문제였으니
Scanner test = new Scanner(System.in);
위의 객체를 생성하여 사용했습니다.
여기서 System.in
은 화면에 입력을 받겠다는 의미 입니다.
기존의 공부는 코드를 만들고 실행에 대한 결과를 출력했는데.
Scanner클래스의 System.in
을 사용하면 실행 후 입력을 해줘야지만 결과를 출력 할 수 있습니다.
3. Scanner 객체 사용방법
이제 객체생성을 하였으니 사용하는 방법에 대해서 설명하겠습니다.
package com.pakage;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner test = new Scanner(System.in);
String myname = test.next(); // 문자열의 입력값은 String 타입으로
int myAge = test.nextInt(); // 정수의 입력값으니 int타입으로
test.close();
System.out.println(myname);
System.out.println(myAge);
}
}
결과는
Legas 31 //(입력 후 엔터) 아래는 결과
Legas
31
이런식으로 입력을 해줘야지만 출력의 결과를 확인 할 수 있습니다.
위의 코드에 나와있는 것처럼 데이터 타입에 따라서 String으로 객체를 사용할지 int형 타입으로 사용할지 확인하여 만들면 됩니다.
추가로 사용방법에서
System.out.println("이름"+myname);
System.out.println("나이"+myAge);
이렇게 바꿔준다면 결과는
Legas 31 //(입력 후 엔터) 아래는 결과
이름Legas
나이31
System.out.println("이름은 " + myname +"이며 " + "나이는 " + myAge + "살 입니다.");
이런식으로 하면 결과는
Legas 31 //(입력 후 엔터) 아래는 결과
이름은 Legas이며 나이는 31살 입니다.
이렇게 출력됩니다.
재밌네요 ㅎㅎㅎ!
4. 문제풀이
Input 3개의 무작위 정수형 숫자가 주어질때
- 42
- 100
- 125
Scanner클래스를 사용하여 입력시 3개의 숫자가 그대로 출력되게 코드를 만드십시오. (3개의 숫자뿐 아니라 다른 정수형 숫자가 들어가도 그대로 출력되게 코드를 만들어야한다.)
위의 배운것을 포스팅한대로 코드를 작성하면
import java.util.*;
public class Solution {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int a = scan.nextInt();
int b = scan.nextInt();
int c = scan.nextInt();
scan.close();
System.out.println(a);
System.out.println(b);
System.out.println(c);
}
}
결과는 입력한 int타입의 정수형 숫자를 무작위로 입력해도 3개의 숫자가 그대로 출력됩니다.
문제 풀이시 사용된 import java.util.*;
은 java.util패키지의 모든 클래스를 import하겠다는 의미 입니다.
직접 import java.util.Scanner;
을 해줘도 되지만 위의 코드대로 사용한다면 필요한 클래스를 적지않아도 사용이 가능합니다.
댓글남기기