(Kotlin) Scanner로 입력받기
이번 글은 콘솔에서 데이터를 입력 받는 부분에 대해서 알아 보겠습니다.
사용자로부터 데이터를 입력 받기 위해서는 Scanner 객체에 System.in(InputStream)을 넣어서 생성한 인스턴스를 사용해야합니다.
System.in은 키보드와 연결 된 자바의 표준 입력 스트림으로 사용자가 키보드를 통해 입력한 데이터를 컴퓨터를 통해 프로그램에 전달해주는 역할을 합니다.
Scanner객체는 System.in을 통해 전달 된 데이터를 언어의 기본타입으로 변환해주는 역할을 합니다.
위에 설명했던 내용들을 Kotlin 코드로 아래와 같이 나타낼 수 있습니다.
import java.util.Scanner
fun main(args: Array<String>){
val sc: Scanner = Scanner(System.`in`)
}
Java를 했던 사람이라면 위 코드가 어떤 형태인지 금방 이해 할 것입니다.
Scanner객체에 System.in이라는 InputStream을 넣어서 만든 인스턴스를 sc에 저장한 형태입니다.
그리고 Scanner객체는 java.util패키지 안에 있는 클래스이기 때문에 import를 사용해서 추가해줘야합니다.
여기서 Java와 다른점이 System.`in`입니다.
in은 Kotlin에서 사용하는 예약어라서 Java에서 사용하던 변수명을 ``으로 감싸서 사용하는 것입니다.
Scanner 객체에서 사용하는 주요 메소드들입니다.
메소드 | 설명 |
next(): String! | String 타입으로 리턴 |
nextByte(): Byte | Byte 타입으로 리턴 |
nextShort(): Short | Short 타입으로 리턴 |
nextInt(): Int | Int 타입으로 리턴 |
nextLong(): Long | Long 타입으로 리턴 |
nextFloat(): Float | Float 타입으로 리턴 |
nextDouble(): Double | Double 타입으로 리턴 |
nextLine(): String! | '\n'을 포함하는 한 라인을 읽고 '\n'을 버린 나머지 문자열을 String 타입으로 리턴 |
지금 String뒤에 !에 대해서 몰라도 상관없습니다. 이 부분은 나중에 다루겠습니다.
간단한 예제로 이름과 나이를 입력받고 콘솔에 출력해주는 코드를 작성해 보겠습니다.
fun main(args: Array<String>){
val sc: Scanner = Scanner(System.`in`)
val name = sc.nextLine()
val age = sc.nextInt()
println("name: $name, age: $age")
}
name을 nextLine으로 문자열을 입력받고 age를 nextInt로 정수를 입력받습니다.
그리고 println함수를 사용해 name과 age를 출력합니다.
위는 결과 화면입니다.
출처 : https://googry.tistory.com/7?category=749066
'안드로이드 > 코틀린' 카테고리의 다른 글
(Kotlin) Break, Continue (0) | 2020.07.13 |
---|---|
(Kotlin) 흐름제어 if when for while break continue (0) | 2020.07.13 |
(Kotlin) 속성 기본 타입 (0) | 2020.07.13 |
(Kotlin) IntelliJ 프로젝트 생성하기 (0) | 2020.07.13 |
(Kotlin) 코틀린이란 (0) | 2020.07.13 |