ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Scanner (입력)
    JAVA 2020. 11. 25. 14:43

    JAVA에서는 입력을 받을때 

    BufferedInputStream 또는 Scanner가 있다.

    이번글에서는 Scanner에 대해서 알아보자.

     

    우선 Scanner는 java.util 에 있는 라이브러리 이므로 사용시 코드 상단에 

    import.java.util.Scanner를 붙여줘야 사용할 수 있다.

     

     

    1
    2
    3
    Scanner sc = new Scanner(System.in);
     
     
    cs

    import 를 입력해준후, 

    Scanner 클래스를 먼저 선언 해주는데,

    선언해줄때 argument(인자)로 System.in을 넣어줘야한다.

     

    Scanner클래스에는 여러 Method가 존재하는데 가장 많이 사용하는 함수를 알아보겠다.

     

     

     

    1.next()

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    import java.util.Scanner
    public class Ex01 { 
     
        public static void main(String[] args) { 
            Scanner sc = new Scanner(System.in);
            String input = sc.next(); 
            System.out.println(input);
     } 
    }​
     
     
     
    cs

    next() 는 문자열을 입력 받을때 사용 한다.

    위 코드를 실행하게 됐을때, 문자열 변수 input에 입력한 문자열 값이 들어가게 된다.

    만약 hello world라고 입력을 하게 되면 ,

    콘솔창에는 hello 라는 글자가 출력되게 된다.

     

    hello world를 예상 했을수도 있으나 결과가 다르게 나온 이유는 

    next() method는 입력하는 값에 공백이 나오기 전까지만 값을 입력받는다.

    따라서 hello 다음에 나오는 공백에 의해 뒤에 world 부분은 무시하게 된다.

     

    그렇다면 뒤에 world 까지 입력을 받고 싶다면??

     

     

    2.nextLine()

     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    import java.util.Scanner;
     
    public class Ex01{
     
        public static void main(String[] args){
     
            Scanner sc = new Scanner(System.in); 
            String input = sc.nextLine(); 
            System.out.println(input);
     
        }
    }
    cs

    nextLine() 은 next() 와는 다르게 개행문자(\n)가 나오기 전까지 값을 입력받는다.

    그래서 hello world하고 엔터를 누르는 순간

    엔터를 입력하기전 (즉 , world)까지 입력을 받는다.

     

    hello world를 입력하면 input에 hello world라는 값이 들어가고 

    그 값이 출력됨.

     

     

    3.nextInt(),nextLong()

    nextInt()는 method이름만 봐도 무슨 역할을 하는지 감이 올것이다.

     

     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    import java.util.Scanner;
     
    public class Ex01{
     
        public static void main(String[] args){
     
            Scanner sc = new Scanner(System.in); 
            int num1 = sc.nextInt();
            int num2 = sc.nextInt();
            System.out.print(num1 + "/" + num2);
     
     
        }
    }
    cs

    바로 정수형 입력을 받을때 사용하게 되는데, 띄어쓰기나 개행문자가 나올때 까지 값을 받는다.

    위 코드를 보면 정수형 변수(int) num1과 num2 총 2개의 변수에 값을 받게 된다.

     

    예를 들어, 입력 값으로 

    2 3

    이라는 값을 준다면 num1에는 2,

    num2에는 3이라는 값이 들어간다.

    그래서 출력 값은 2/3 이 나오게 된다.

     

    이번에는 띄어쓰기가 아닌 개행문자(엔터)를 이용한다면

     

    2

     

    3

    이라는 값을 주어도 똑같이 num1=2, num2=3이 들어가게 되고, 결과또한 2/3으로 값이 같다.

     

     

    이번에는 nextLong()에 대해 알아보자

     

     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    import java.util.Scanner;
     
    public class Ex01{
     
        public static void main(String[] args){
     
            Scanner sc = new Scanner(System.in); 
            Long num1 = sc.nextLong();
            int num2 = sc.nextInt();
            System.out.print(num1 + "/" + num2);
     
     
        }
    }
    cs

    nextLong() 은 long 변수를 입력 받을때 사용한다.

     

     

    4.nextDouble(),nextFloat()

    nextDouble과 nextFloat()는 실수형을 받기 위한 method이다.

     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    import java.util.Scanner;
     
    public class Ex01{
     
        public static void main(String[] args){
     
            Scanner sc = new Scanner(System.in); 
            double num1 = sc.nextDouble();
            float num2 = sc.nextFloat();
            System.out.print(num1 + "/" + num2);
     
     
        }
    }
    cs

    위에서 알아본것과 마찬가지로 nextDouble은 double 타입 변수,

    nextFloat()는 float타입 변수 입력받을때 사용한다.

     

    출처:hongku.tistory.com/15

    728x90
    반응형

    'JAVA' 카테고리의 다른 글

    Java Map 컬렉션(Collection) 개념  (0) 2021.05.26
    [JAVA] 컬렉션(Collection) 이란?  (2) 2020.11.30
    리스트(List)  (1) 2020.11.30
    [JAVA] this의 의미  (2) 2020.11.13
    [JAVA] 참조형 (Reference)이란?  (0) 2020.11.13

    댓글

Designed by Tistory.