본문 바로가기
코틀린 문법

13. 문자열을 다루는 법

by 농농씨 2023. 5. 11.

참조: 유튜브 디모의 코틀린

코드테스트 사이트:play.kotlinlang.org

 

//코틀린에서 문자열을 다루는 여러가지 방법
//복습
//:코틀린에서는 'String'이라는 클래스로 문자열을 다루며
// val text="문자열"처럼 쌍따옴표 사이에 문자열을 넣어 리터럴을 만들며
// 새 String 객체가 생성됨
//String클래스와 관련한 여러 속성과 함수 중 자주쓰이는 것들을 알아보자~
//


fun main(){
    
    val test1 = "Test.Kotlin.String" //테스트용 문자열
     //오늘 실습은 대소문자에 유의!!
    //문자열길이
    println(test1.length)//length라는 속성에 Int값으로 들어있음
    
    println(test1.toLowerCase())//소문자로 변환
    println(test1.toUpperCase())//대문자로 변환
    //각각 영문 소문자와 대문자로 문자열 전체를 변환하여 반환하는 역할
    
    //특정 문자열을 기준으로 문자열을 여러개로 나눠 배열에 담을수도 있다.
    //split()이라는 함수에 나누는 기준이 되는 문자열(delimiter)을 넣어줌    
    //점을 기준으로 나눈 문자열 배열을 test2변수에 담고 출력해보자    
    val test2 = test1.split(".")
    println(test2)
    //*참고로 코틀린에서는 자바와 달리 Split에
    // 정규식이 아닌 '일반 문자열'을 넣어도 동작한다.(?글쿤)정규식은 나중에~
    
    //문자열이 들어간 배열을 다시 하나의 문자열로 합쳐보자
    println(test2.joinToString())//그냥합쳐짐
    println(test2.joinToString("-"))//-문자를 넣어 합쳐짐
    //출력결과를 보면 '배열'이 합쳐지는건 기본적으로 ,를 사이에 두고 합쳐짐
    
    //test1에서 문자열 일부만 사용
    println(test1.substring(5..10))
    //for문에서 사용했었던 IntRange형식을 사용하여 시작(5)과 끝(10)을
    //정해주면 그 부분만 출력됨
    
  
}



//문자열이 비어있는지 여부를 판단하여 boolean 값으로 반환받는 함수들 알아보자

fun main(){
    
    val nullString: String?=null
    //nullable로 String변수 nullString을 만들어 null할당
    val emptyString = ""
    //아무것도 넣지 않은 문자열
    val blankString=" "//빈칸유의!
    //빈칸을 하나 넣은 문자열
    val normalString="A"
    //A를 하나 넣은 문자열
    
    //string변수들이 비어있는지 체크하는 여러가지 방법
    //그중 제일 편한 두가지 함수
    
    //isNullOrEmpty함수:null이거나 empty이면 true 반환
    println(nullString.isNullOrEmpty())
    println(emptyString.isNullOrEmpty())
    println(blankString.isNullOrEmpty())
    println(normalString.isNullOrEmpty())
    
    println()//보기쉬우려고 띔
    
    //isNullOrBlank함수:null이거나 blank이면 true반환
    println(nullString.isNullOrBlank())
    println(emptyString.isNullOrBlank())
    println(blankString.isNullOrBlank())
    println(normalString.isNullOrBlank())
    
    //두 함수의 차이
    //아무것도 없는 문자열, 즉 empty상태만 비어있는 것으로만 보느냐, 
    //아니면 문자열은 있지만 공백문자로만 이루어진 blank 상태도
    //비어있는 것으로 보느냐의 차이
    // isNullOrEmpty():"난 진짜 비어있는 것만 인정해"
    // isNullOrBlank():"비어있어도 되지만 공백문자만 있어도 돼"
    //공백문자에는 space,tab,line feed,carriage return 등
    //눈에 직접적으로 보이지 않는 문자들을 포함
    
}

 

 

//좀 특수한 함수들을 알아보자

fun main(){
    var test3 = "kotlin.kt"
    var test4 = "java.java"
    
    println(test3.startsWith("java"))//java로 시작하는 문자열인지
    println(test4.startsWith("java"))//확인
    //startsWith():지정한 문자열로 시작하면 true를 반환
    
    println(test3.endsWith(".kt"))//.kt로 끝나는지 확인
    println(test4.endsWith(".kt"))
    //endsWith():지정한 문자열로 끝나면 true를 반환
    
    println(test3.contains("lin"))//lin 포함하는지 확인
    println(test4.contains("lin"))
    //contains():지정한 문자열 포함하면 true를 반환
}

//문자열을 다루는 법은 입력값을 받거나 문자열로 된 자료를 처리할 때
//매우 자주 사용되는 기능이니 잘 익혀두세요