[Kotlin] isEmpty vs isBlank

Sdoubleu·2023년 5월 9일
0

Kotlin

목록 보기
1/3
post-thumbnail

isEmpty() & isBlank()

이해를 돕기 위해 예시를 스토리 형식으로 작성하였습니다


isNotEmpty / isNotBlank의 서사

  • 문자열이 빈 문자열인지 확인해야 할 때 사용하는 함수이다
    비슷해보이지만 약간 다르다 이번에 제대로 기억해두자!

코테를 풀던 도중에 빈 문자열을 확인해서 지워야하는데 둘 다 적용되길래
무슨 차이인지 궁금해서 찾아봤다

val str = "11x + 5 + 6"
str.toList()

여기에 str 변수가 있다. 이걸 list로 바꿨을 땐

이렇게 나오게 된다 . .

내가 처음에 생각한 List로 변환의 결과는 [12, x, 5] 이여야 되는데 말이다

그래서 무작정 split함수를 사용을 했다

str.split(" ")

의 결과는

공백도 사라졌고 전보다는 좋아졌다
계산을 쉽게 하기 위해 ( 문제에는 덧셈밖에 없음 )
+연산자를 공백으로 변환 후 공백을 제거해보기로 했다

str.replace("+"," ").split(" ")

빈칸이 있는 것을 제외하면 조금 더 보기 편해졌다
그래서 빈칸의 유무를 확인하기 위해 사용되는 함수가
isEmpty / isBlank 이다

str.replace("+","").split(" ").filter { it.isNotEmpty() }

👍👍

현재 여기에서는 isNotEmpty 와 isNotBlank 는 같게 작용한다

그 이유는

isEmpty / isBlank 의 정의

  • isEmpty
    특정 문자열이 ""인지 아닌지를 확인한다

  • isBlank
    특정 문자열이 비어 있거나, 또는 공백으로만 이루어져 있는지를 확인한다

보통 list로 만들 때 split(" ")을 적용해서 만드는데
split 함수란, 특정 문자를 기준으로 문자열을 분리하여서 list에 넣기때문에

원래 자리를 차지하고 있던 곳은 비여있다는 것을 알 수 있다
-> 그래서 isEmpty와 isBlank를 둘 다 사용 가능 하다

그래서 차이점이 뭐임?

val s1 = ""
val s2 = " "

isBlank 가 조금더 범용성 많아 보임ㅎㅎ;


📌More

isEmpty, isBlank, isNotEmpty, isNotBlank

profile
개발자희망자

0개의 댓글