경험의 기록

코틀린은 자바의 모든 코드를 바탕으로 개선된 언어이므로, 자바의 모든 기능을 사용할 수 있다.

 

1. readLine() 사용

fun main(args: Array<String>) {
    var name = readLine()
    println("name : ${name} !") // 개행
    System.out.println("name : "+name+" !") // 자바 방식
    print("name : ${name} !") // 개행하지 않음
}

 

readLine을 사용하여 문자열을 받을 수 있다. 하지만 모든 입력을 문자열(String 타입) 으로 받기 때문에 숫자를 입력받기 위해서는 숫자로 변환을 해 주어야 한다.

출력은 그냥 println을 사용해도 되고, 자바의 sysout을 사용해도 된다.

 

2. BufferedReader 사용

import java.io.*
import java.util.*

fun main(args: Array<String>) = with(BufferedReader(InputStreamReader(System.`in`))){
    val token = StringTokenizer(readLine())
    println(Integer.parseInt(token.nextToken()) + Integer.parseInt(token.nextToken()))
}

또한 자바의 BufferedReader를 사용해도 된다.

 

3. Scanner 사용

자바의 스캐너를 사용하는 방법도 있다.

자바와 동일방식으로 import java.util.* 추가후 스캐너를 사용하면 되는데,

 

import java.util.*

fun main(args: Array<String>){
    var input = Scanner(System.`in`)
    println(input.nextInt()+input.nextInt())
}

자바를 사용할 때 처럼 변수를 만들어 사용해도 되고,

 

import java.util.*

fun main(args: Array<String>) = with(Scanner(System.`in`)) {
    println(nextInt() + nextInt())
}

이렇게 with를 사용하여 바로 스캐너를 만들어 사용해도 된다.

with 사용시 nextInt만 사용해도 되는 편리함이 있다.

 

 


 

import java.io.BufferedReader
import java.io.InputStreamReader
import kotlin.collections.ArrayList

fun main() = with(BufferedReader(InputStreamReader(System.`in`))){
    val n = readLine().toInt()
    val arr = ArrayList<IntArray>()

    for(i in 0 until n){
        arr.add(readLine().split(" ").map { it.toInt() }.toIntArray())
    }
}

split으로 쪼개서 배열에 저장도 가능하다.

 

 

fun main(args: Array<String>) {
    var a : Int = readLine()!!.toInt()
    var b : Int = readLine()!!.toInt()

    println(a+b)
}

toInt를 사용하여 숫자로 변환하면 숫자 형태로도 받을 수 있다.

 

 

fun main(args: Array<String>) {
    var size : Int = readLine()!!.toInt()
    var arr = Array<Int>(size) { readLine()!!.toInt()}
    var sum = 0
    var a : String? = null

    for(i in arr){
        println(i)
        sum += i
    }
    println("총합 : $sum")
}

또한 이런식으로 반복문을 사용하여 원하는 개수만큼 입력받을 수도 있다.

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading