반응형
문자열은 연속된 문자의 배열과 같습니다.
불변의 값으로 생성되기 때문에 참조되고 있는 메모리가 변경될 수 없습니다. 새로운 값을 할당하려고 한다면 기존 메모리 이외에 새로운 문자열을 위한 메모리를 할당해야 합니다.
var s ="abcdef"
s="xyz" // 새로운 메모리 공간이 생성
문자열 추출하고 병합하기
문자열 추출 : String.substring(인덱스 범위), CharSequence.subSequence(인덱스 범위)
var s ="abcdef"
s=s.substring(0..1)+"x"+s.substring(3..s.length-1) // ab 추출하고 x를 덧붙이고 다시 def 추출
// s="abxdef"
문자열 비교하기
String.compareTo(String)
var s1="Hello Kotlin"
var s2="Hello KOTLIN"
// 같으면 0, s1<s2 이면 양수, 반대면 음수 반환
println(s1.compareTo((s2))) // 32
println(s1.compareTo(s2, true)) // 대소문자 무시 결과 : 0
문자열이 자주 변경되는 경우 String Builder 사용
단, 기존의 문자열보다는 처리 속도가 느리고, 만일 단어를 변경하지 않고 그대로 사요하면 임시 공간인 메모리를 조금 더 사용하므로 낭비된다는 단점이 있습니다.
var s=StringBuilder("Hello")
s[2]='x' // s는 메모리 공간을 새로 만들지 않고 여유분 공간을 이용해 요소 변경
println(s) // Hexlo
// StringBuilder 관련 메소드 append, insert, delete
s.append("World") // 문자열이 추가되어 HexloWorld
s.insert(10,"Added") // 인덱스 10번부터 추가되어 HexloWorldAdded
s.delete(5,10) // 인덱스 5번부터 10번까지 삭제되어 HexloAdded
기타 문자열 처리
문자열 잘라내기 split()
var deli= "Welcome to Kotlin"
val sp=deli.split(" ") // split()을 통해 공백 문자 기준으로 문자열을 잘라내고, sp는 컬렉션 List<String>으로 추론 할당됩니다.
println(sp) // [Welcome, to, Kotlin]
문자열을 정수로 toInt()
val number:Int="123".toInt()
이스케이프 문자의 종류
종류 | ||
\t 탭(tab) | \r 캐리지 리턴(carriage return) | \\ 백슬래시(backslash) |
\b 백스페이스(backspace) | \' 작은따옴표(single quote) | \$ 달러 기호(dallar) |
\n 개행(newline) | \" 큰따옴표(double quote) |
형식 문자 사용하기
형식 문자의 종류
종류 | ||
%b 참과 거짓의 Boolean 유형 | %o 8진 정수 | %g 10진 혹은 E표기법의 실수 |
%d 부호 있는 정수 | %t 날짜나 시간 | %n 줄 구분 |
%f 10진 실수 | %c 문자 | %s 문자열 |
%h 해시코드 | %e E 표기법의 실수 | %x 16진 정수 |
val pi= 3.1415926
val dec= 10
val s= "hello"
println("pi= %.2f, %3d, %s".format(pi,dec,s)) // pi= 3.14, 10, hello
반응형
'Do it 코틀린 프로그래밍' 카테고리의 다른 글
코틀린 컬렉션(2) - List 활용하기 (0) | 2020.08.24 |
---|---|
코틀린 컬렉션(1) - 기본 구조 (1) | 2020.08.23 |
코틀린 배열 (0) | 2020.08.21 |
코틀린 제네릭 (0) | 2020.08.20 |
코틀린 상속과 다형성 (2) | 2020.08.19 |
댓글