이번 포스트에서는 코틀린의 String, ArrayList, Queue, Stack의 함수들을 간략하게 알아보겠습니다.
String
startsWith(str)
-> 문자열이 특정 문자열로 시작하는지 Boolean 값 반환
endsWith(str)
-> 문자열이 특정 문자열로 끝나는지 Boolean 값 반환
indexOf(str)
-> 특정 문자열의 포함된 첫번째 index 반환. 만약, 중복될 경우 가장 처음 index 반환. 일치하는 문자열이 존재하지 않을 경우 -1 반환
equal(str)
-> String 문자열 값 비교하여 Boolean 값 반환
none(predicate: (Char) -> Boolean)
-> predicate 조건을 만족하는 문자가 하나도 없는지에 대한 Boolean 값을 반환
any(predicate: (Char) -> Boolean)
-> predicate 조건을 만족하는 문자가 최소 1개 이상 존재하는지에 대한 Boolean 값을 반환
all(predicate: (Char)
-> Boolean) -> predicate 조건을 모든 문자가 만족하는지에 대한 Boolean 값을 반환
substring(intRange)
-> intRange 범위에 속한 문자열 반환
substring(startIndex)
-> startIndex를 포함하여 index 뒤의 모든 문자열 반환
substring(startIndex, endIndex)
-> (startIndex, endIndex - 1) 범위의 문자열 반환
take(n)
-> 맨 앞 n개의 문자열 반환
takeLast(n)
-> 맨 뒤 n개의 문자열 반환
drop(n)
-> 맨 앞 n개의 문자열 제거
dropLast(n)
-> 맨 뒤 n개의 문자열 제거
removeRange(intRange)
-> intRange 범위에 속한 문자열 제거 후 반환
removePrefix(prefix)
-> 맨 앞에 prefix와 일치하는 문자열이 있을 경우 문자열 제거 후 반환
removeSuffix(suffix)
-> 맨 뒤에 suffix와 일치하는 문자열이 있을 경우 문자열 제거 후 반환
toLowerCase(str)
-> 문자열을 소문자로 변환
toUpperCase(str)
-> 문자열을 대문자로 변환
trim(str)
-> 문자열 앞 뒤의 공백을 제거. 단, 문자열 내부의 공백은 replace(" ", "")를 사용
contains(str)
-> 특정 문자열이 포함되어 있는지 확인
padStart(length, padChar)
-> 문자열의 길이가 length 길이보다 적을 경우 맨 앞에 padChar로 채운 문자열 반환
padEnd(length, padChar)
-> 문자열의 길이가 length 길이보다 적을 경우 맨 뒤에 padChar로 채운 문자열 반환
slice(intRange)
-> 문자열 중에 intRange 범위의 문자열 반환
replace(oldStr, newStr, ignoreCase)
-> 특정 문자열을 새로운 문자열로 치환. ignoreCase가 true면 대소문자 구분하지 않습니다.
split(regex)
-> 문자열을 regex를 기준으로 나눈 배열을 반환
length()
-> 문자열의 길이를 반환
String -> 다른 타입 변환
to{Numbers 타입}()
-> String을 Numbers 타입으로 변환합니다. 예를들면, toInt()는 Java의 Integer.parseInt(this)를 수행하며 String을 숫자형으로 변환할 수 있는 형태가 아닐 경우 NumberFormatException 에러 발생을 합니다. e.g) toByte(), toInt(), toShort(), toFloat(), toLong(), toDouble()
to{Numbers 타입}OrNull()
-> String을 Numbers 타입으로 변환하며 String이 숫자형으로 변환할 수 있는 형태가 아닐 경우 null 반환 e.g) toByteOrNull(), toIntOrNull(), toShortOrNull(), toFloatOrNull(), toLongOrNull(), toDoubleOrNull()
toList()
-> String을 List<Char> 형태로 변환
toSet()
-> String을 Set<Char> 형태로 변환 (중복 제거)
Numbers 타입 -> String 변환
{Numbers 타입}.toString()
-> 숫자를 String으로 변환합니다.
ArrayList
코틀린에서 ArrayList
는 아래의 방법으로 선언합니다.
val list = mutableListOf<String>()
add(element)
-> ArrayList에 element를 추가합니다.
add(index, element)
-> ArrayList의 index 위치에 element를 추가합니다.
addAll(elements)
-> ArrayList에 Collections의 element들을 추가합니다.
remove(element)
-> ArrayList의 element를 제거합니다.
removeAt(index)
-> ArrayList의 index 위치의 element를 제거합니다.
set(index, element)
-> ArrayList의 index 위치의 element를 교체합니다.
Queue
코틀린에서 Queue
는 아래의 방법으로 선언합니다.
val queue: Queue<Int> = LinkedList()
add(element)
-> 큐에 element를 추가하고 성공하면 성공여부 Boolean 값을 반환합니다. 만약, 큐에 공간이 부족하면 IlllegalStateException 에러를 발생합니다.
offer(element)
-> 큐에 element를 추가하고 성공하면 성공여부 Boolean 값을 반환합니다. 큐에 공간이 부족해도 에러를 발생시키지 않습니다.
remove()
-> 큐 맨 앞의(가장 먼저 넣은) element를 제거하고 빼낸 element를 반환합니다. 만약, 큐가 비어있다면 NoSuchElementException 에러를 발생합니다.
poll()
-> 큐 맨 앞의 element를 제거하고 빼낸 element를 반환합니다. 큐가 비어있다면 null을 반환합니다.
element()
-> 큐 맨 앞의 element를 제거하지 않고 element를 반환합니다.(값 확인) 만약, 큐가 비어있다면 NoSuchElementException 에러를 발생합니다.
peek()
-> 큐 맨 앞의 element를 제거하지 않고 element를 반환합니다.(값 확인) 만약, 큐가 비어있다면 null 에러를 발생합니다.
Stack
코틀린에서 스택은 아래의 방법으로 선언합니다.
val stack: Stack<Int> = Stack()
push(element)
-> 스택에 element를 추가하고 성공하면 element를 반환합니다.
pop()
-> 스택의 맨 뒤의(가장 나중에 넣은) element를 빼내고 성공하면 빼낸 element를 반환합니다. 만약, 스택이 비어있다면 EmptyStackException 에러를 발생합니다.
peek()
-> 스택의 맨 뒤의 element를 제거하지 않고 element를 반환합니다. (값 확인)
empty()
-> 스택이 비어있는지 여부 Boolean 값을 반환합니다.