일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 지식나눔강좌
- Visual Studio
- 김성엽
- 문법
- 프로그래밍
- Windows
- Kotlin
- VS ERROR
- 연산자
- Win32
- 백준
- CS
- Tips강좌
- c#
- Programming
- 알고리즘
- 배열
- Desktop
- Javascript
- 함수
- 티스토리
- 리뷰
- doit코틀린프로그래밍
- Tips프로그래밍강좌
- tipssoft
- 이지스퍼블리싱
- 포인터
- Direct2D
- c
- c++
- Yesterday
- Today
- Total
F.R.I.D.A.Y.
Kotlin: 03 출력하기 본문
이전 시간에 잠시 출력에 대한 내용이 포함되어 있었습니다. 이번 포스트에서는 잠시 논외로 벗어나 출력하는 방법에 대해 알아봅니다.
출력하기
입력은 대개 사용자들로부터 어떤 값을 작성해 그 값을 프로그램에 넣는 의미로 생각할 수 있는데, 이것에 그치지 않고 마우스 클릭, 키보드 입력 등 모든 행위를 입력이라고 볼 수 있습니다.
출력 함수
코틀린의 기본적인 출력 함수는 크게 두 가지가 있습니다.
println("print string with new line")
print("print string without new line")
내용의 설명과 같이 println 함수는 출력이 끝나면 마지막에 새로운 줄로 이동하는 개행 문자를 넣는 반면, print 함수의 경우에는 문자열 출력만을 진행합니다. 그래서 print 함수를 사용한 뒤에 이어서 바로 출력을 하면 아래 이미지와 같이 이어져 나오게 되죠.
변수 출력
이전 시간에 간단한 두 가지 방법을 설명했습니다.
val str:String = "hello world"
println(str) // 변수를 인자로 넘기기
println("$str.") // 문자열 상수 안에 변수명 앞에 접두사 $를 붙여 출력하기
두 방법 모두 변수의 값을 출력하는 것에는 문제가 없지만 문자열을 이용하는 두 번째 방법이 조금 더 유연한 출력이 가능하겠네요.
그렇다고 첫 번째 방법에서 두 번째와 같이 추가 문자열을 입력하지 못하는 것은 아닙니다. 더하기 연산자를 활용하면 추가 출력이 가능합니다.
val str:String = "stars"
println(str + " with you")
두 번째 출력의 경우에는 중괄호를 넣어 더욱 유연하게 활용할 수 있습니다. 두 값을 더해 출력하는 프로그램이 있다고 해봅니다.
fun main(args: Array<String>) {
val i1 = 1
val i2 = 3
println("i1 + i2 = ${i1 + i2}")
}
중괄호 안에 수식을 입력하고 중괄호 앞에 접두사 $를 입력해주면 해당 부분이 출력 전에 연산이 이루어집니다. 결국 출력 결과는 4가 되는 것이지요.
이스케이프 시퀀스
접두사 $, 큰따옴표 등은 문자열에서 이미 그 기능이 정해져 있는 문자입니다. 예를 들어 큰따옴표의 경우에는 문자열 선언 중간에 넣고 싶다고 막 넣게 되면, 문자열 선언이 엉망이 되어버립니다.
val str:String = "Hello (") this mark name is double quotation"
중간의 설명을 위해 작성한 큰따옴표가 되려 이후의 문자열 선언에 문제를 일으키게 됩니다. 이렇게 되면 문자열에서는 큰따옴표를 이용할 수 없는가? 그것은 아닙니다. 개발자들이 이 문제에 직면했을 때, 손쉽게 해결할 수 있도록 언어에서 해결법을 제공하고 있습니다.
그것은 바로 이스케이프 시퀀스라 불리는 기능입니다. 이 기능을 이용하면 실제로는 문자열 선언에서 입력이 어려운 문자도 입력이 가능합니다.
이스케이프 문자 | 설명 |
\t | 탭문자 |
\b | 백슬래시 |
\' | 작은따옴표 |
\" | 큰따옴표 |
\$ | 달러 기호 |
\\ | 백슬래시 입력 |
... | ... |
이스케이프 시퀀스로 제공되는 문자의 수는 위 표보다 많습니다.
원시 문자열 이용
만일 이스케이프 문자를 사용하기 싫다면? 괜찮습니다. 다른 기능을 제공하니까요. 원시 문자열이라 불리는 기능이 있습니다. 이 기능은 HTML 태그 중 pre 태그와 유사한 기능을 제공한다고 생각하면 됩니다. 마치 파이썬이 생각나는 기능이네요.
val str:String = """
시간은 절대적입니다.
언제나 쉼 없이 달리죠.
그래서 우리는 달립니다, 더 나은 삶을 위해.
"""
단 이 기능을 이용하면 조금 아쉬울 수밖에 없습니다. 왼쪽에 입력했을 때 들여 쓰기를 한 만큼 출력에서도 들여 쓰기 때문이죠. 이 문제를 해결하는 방법은 간단합니다.
trimMargin()
기능을 이용하면 됩니다.
val str:String = """
|시간은 절대적입니다.
|언제나 쉼 없이 달리죠.
|그래서 우리는 달립니다, 더 나은 삶을 위해.
""".trimMargin()
와 같이 입력하는 문장마다 앞에 파이프[#| 키보드 상단의 원화, 혹은 역슬래시 기호를 Shift와 함께 누르면 작성됨]를 입력하고, 원시 문자열이 끝나는 """ 뒤에 trimMargin 함수를 추가로 작성해주면 됩니다.
이렇게 작성하면 trimMargin()에 의해 앞선 들여 쓰기 공백이 사라지게 됩니다. 만일 파이프가 아닌 다른 문자로 바꾸고 싶다면 아래처럼 이용하세요.
val str:String = """
#시간은 절대적입니다.
#언제나 쉼 없이 달리죠.
#그래서 우리는 달립니다, 더 나은 삶을 위해.
""".trimMargin("#")
Next.
# index
'DEV > Kotlin' 카테고리의 다른 글
Kotlin: 05 연산자 (0) | 2020.03.28 |
---|---|
Kotlin: 04 자료의 비교와 변환 (0) | 2020.03.27 |
Kotlin: 02 변수와 자료형 (1) | 2020.03.23 |
Kotlin: 01 시작하기 (2) | 2020.03.22 |
Kotlin: 00 Intro (0) | 2020.03.21 |