[完全征服コトリン]文字列
文字列
文字列は連続文字の配列に等しい.また、文字列は
불변(immutable)
なので、参照メモリは変更できません.Pythonとは違います.Pythonは文字列をリストとして処理するため、値を変更することができますが、コトリンはそうではありません.文字列の基本処理
varまたはvalとして宣言された文字列を変更しようとすると、エラーが発生します.前述したように、
코틀린
の文字列は変わらないからです.ただし、varと宣言すると、完全に新しい文字列を割り当てることができます.fun main() {
val hello : String = "Hello Kotlin"
// hello[0] = "k" 오류 발행
var temp : String = "기존 문자열"
temp = "새로운 문자열" // var로 선언한 경우 새로운 문자열 할당 가능
}
新しい文字列を割り当てると、既存の文字列で使用されているメモリ領域はGC(Garbage Collector)
によって削除されます.文字列の抽出とマージ
substring
によって文字列を抽出し、+
にマージすることができる.fun main() {
val s1 = "hello"
println(s1.substring(0..1)) // From, To를 지정해서 문자열을 추출할 수 있다.
val s2 = s1.substring(0..0) + 'i' // + 를 통해 새로운 문자열로 병합할 수 있다.
println(s2)
}
比較文字列
코틀린
では、文字列を比較するために、compareTo
または==
を使用することができる.compareToはs 1です.compareTo(s 2)←このように使えます.s 1がs 2に等しい場合、0、s 1は正の数より小さく、s 2が小さい場合は負の数を返します.また、trueを2番目のパラメータとすると、文字列を比較する際に大文字と小文字を区別しません.fun main() {
val s1 = "hello"
val s2 = "HELLO"
// 두 번째인자로 true를 넣어주면 대소문자 구별없이 비교
if (s1.compareTo(s2, true) == 0) {
println("Equal!")
} else {
println("Not Equal!")
}
// == 를 사용해도 비교가능
// if (s1 == s2) {
// println("Equal!")
// } else {
// println("Not Equal!")
// }
}
StringBuilder
StringBuilder
は、文字列をより流動性のあるものにします.文字列は、より大きなスペースを使用して文字列を変更できます.しかし、欠点は、既存の文字列よりも処理速度が遅いことです.fun main() {
var s1 = StringBuilder("Hello")
s1[0] = 'C' // 기존에는 불가능 했지만 StringBuilder를 이용하면 가능
}
Reference
この問題について([完全征服コトリン]文字列), 我々は、より多くの情報をここで見つけました https://velog.io/@k906506/코틀린-완전정복-문자열テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol