해당 포스팅에서는 문자열을 좀 더 세부적으로 알아본다.
문자열에는 다양한 메서드들이 있다.
그 중 자주 쓰이는 메서드들을 알아보도록 하며, 그 외의 메서드들은 아래 링크를 통해 Kotlin 공식 문서에서 참조 바랍니다.
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/
init
var string = "초기화"
문자열 사이에 변수 값
1. $변수
2. ${변수}
1번으로 사용하실 경우, 다음 문자열과 띄어쓰기로 구분해야 한다.
val data = "20"
val string = "저는 ${data}살 입니다."
println(string)
println("저는 $data살 입니다.") //에러 : 변수명을 data살로 인식하기에 띄어쓰기를 해주어야 한다.
-----------------------------
저는 20살 입니다.
length() : Int
문자열 길이를 나타낸다.
var string = "hello"
print(string.length)
-------------------------
5
equal() : Boolean
문자열을 비교한다.
var string = "hello"
println(string.equals("hello"))
println(string.equals("asd"))
-------------------------
true
false
substring() : String
문자열 자르기
val string = "012345"
println(string.substring(0, 4)) // 0번 인덱스부터 4번 인덱스 이전까지
----------------
0123
repeat() : String
문자열 반복
val string = "a"
println(string.repeat(3))
---------------------------------
aaa
count() : Int
문자열 내에서 조건에 만족하는 개수
val string = "abcde"
println(string.count())
println(string.count{it=='a'})
--------------------------------
5
1
indexOf() : Int
특정 문자의 인덱스를 반환
val string = "abcde"
println(string.indexOf('a'))
println(string.indexOf('c'))
-----------------------------
0
2
contains() : Boolean
특정 문자 또는 문자열이 포함되어 있는지 확인
val string = "abcde"
println(string.contains('a'))
println(string.contains("bc"))
println(string.contains('#'))
-----------------------------
true
true
false
replace() : String
특정 문자 변경
var string = "aa#aa#aa#"
string.replace("a", "b")
println(string)
string = string.replace("a", "b")
println(string)
----------------------------------
aa#aa#aa#
bb#bb#bb#
toUpperCase(), toLowerCase() : Boolean
알파벳 대소문자 변경
var string = "aaBB"
string = string.toUpperCase()
println(string)
string = string.toLowerCase()
println(string)
----------------------------------
AABB
aabb
isUpperCase(), isLowerCase() : Boolean
알파벳 대소문자 확인
해당 메서드는 문자열이 아닌 문자를 사용해야 합니다.
var char = 'a'
println(string.isUpperCase())
println(string.isLowerCase())
----------------------------------
false
true
StringBuilder()
StringBuilder() 는 메서드가 아닌 객체입니다.
해당 객체는 문자열을 추가, 변경 등의 작업이 많이 이루어질 때 사용합니다.
그 이유는 일반적으로 String 객체에 추가, 변경, 수정 등의 작업을 할 때 우리는 단순히 값이 바뀐다고 생각하지만 시스템 내부에서는 새로운 객체를 만들어 그 객체에 할당하여 우리에게 보여주는 것이기 때문에 메모리 낭비가 일어날 수 있습니다.
따라서 StringBuilder() 객체를 사용하여 메모리를 절약할 수 있습니다.
여기에 없는 메서드들은 다음 링크에서 확인하실 수 있습니다.
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/-string-builder/
StringBuilder Init
val sb = StringBuilder() // 빈 값 초기화
val sb2 = StringBuilder("aaa") // 값 초기화
append()
값 추가
val sb = StringBuilder()
sb.append("a")
println(sb.toString())
sb.append("b")
println(sb.toString())
------------------------
a
ab
length()
길이 확인
val sb = StringBuilder("aaa")
println(sb.length)
---------------
3
setLength()
문자열 길이를 변경
val sb = StringBuilder("aaa")
sb.setLength(2)
println(sb.toString())
sb.setLength(1)
println(sb.toString())
sb.setLength(0) // 길이가 0이므로 아무것도 안나옴
--------------------------------
aa
a
clear()
빈 값으로 변경
val sb = StringBuilder("aaa")
sb.clear()
println(sb.toString())
--------------------------
(아무것도 안나옴)
deleteAt()
특정 인덱스 값 삭제
val sb = StringBuilder("abc")
sb.deleteAt(1)
println(sb.toString())
--------------------------------
ac
deleteRange()
인덱스 범위 삭제
val sb = StringBuilder("012")
sb.deleteRange(1, 3) // 1번 인덱스부터 3번 인덱스 전까지
println(sb.toString())
--------------------------------
0
insert()
특정 인덱스에 값 추가
val sb = StringBuilder("abf")
sb.insert(2, 'c') // 1번 인덱스부터 3번 인덱스 전까지
println(sb.toString())
sb.insert(3, "de")
println(sb.toString())
--------------------------------
abcf
abcde
'프로그래밍 언어 > Kotlin' 카테고리의 다른 글
[Kotlin] 정렬 (0) | 2024.06.11 |
---|---|
[Kotlin] 배열과 리스트 복사 (0) | 2024.03.06 |
[Kotlin] 코틀린 기초 문법 (1) | 2023.11.03 |