Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

String 에 대해 자세히 알아보자 #12

Open
daehwan2da opened this issue Apr 13, 2023 · 0 comments
Open

String 에 대해 자세히 알아보자 #12

daehwan2da opened this issue Apr 13, 2023 · 0 comments

Comments

@daehwan2da
Copy link
Collaborator

daehwan2da commented Apr 13, 2023

references

기초 Question

String 이란 무엇일까?

String 을 선언하고 값 할당해보기

변수 할당 val 과 var 을 적용해서 테스트를 구성해보세요

테스트 보기
스크린샷 2023-04-18 오후 10 43 57

Q. "" 과 '' 의 차이는 무엇일까요?

궁금하지?

"" 는 String, 문자열을 변수에 할당하는 것이고,
'' 는 Char 문자를 변수에 할당하는 것을 의미합니다.

  • char 들이 모여서 String 을 구성한다고 이해하면 좋을것같아요!
  • 더 자세히 알아보고 싶으면.. String 이라는 class 를 파헤쳐보면 좋을것같아요
    • key word : CharSequence
스크린샷 2023-04-18 오후 10 46 10

세미나 연관

안드로이드 TextView 를 구성하다보면, 한 줄을 강제로 넘겨 두 줄을 만들고 싶은 경우가 있는데요, 이때 다양한 방법이 있지만, 단순히 String 으로만 줄을 띄우고 싶은 경우 어떻게 할까요?

  • 줄 바꾸기 외에도 String escape 를 찾아보고 comment 에 남겨주세요~
테스트 구성해보기
스크린샷 2023-04-18 오후 11 08 30

코틀린 스럽게 String 활용하기

(1) String Template

String template 은 대표적인 kotlin 스러운 방식인데요,
경험이나, 테스트를 구성해보고 comment 로 공유해주세요!

(2) extract char element

"apple" 에서 'e' 만 빼오고싶은 경우, 기존 java 에서는 index 를 구해서 직접 뽑아내거나, StringUtils 와 같은 외부 라이브러리 (google, apache) 의 힘을받아 구현을 했어야했는데요, kotlin 에서는 e 만 쏙 빼오는걸 어떻게 쉽게 풀어냈을까요
(뭔가 코테 풀때 java 보다는 유리 하겠죠..?)

테스트 구성해보기

배열처럼 사용하면 된답니다~
스크린샷 2023-04-18 오후 10 55 38

(3) "" 말고 """ """ 도 있다..?

테스트 구성해보기

raw strings 라고 불리는 String 표현 방식은, 내부에 escape 들을 무시하고, 문장 그 자체를 표현하는 kotlin 만의 String 선언 방식입니다
이때, 각 줄의 시작 과 마진, 빈 칸 제거 등을 제공되어지는 여러 method 들을 통해 정리할 수 있답니다~

스크린샷 2023-04-18 오후 11 17 38 ("" 일때 \n 과 같이 escape 를 명시해주어야하는데, rawString 의 경우 그대로 들어가집니다~)

trimIndent() 외에도 method 들은 무엇이 있고 어떻게 활용되어지는 것 일까요?
메서드들을 테스트 해보시고 comment 에 남겨주세요~

(비밀이지만) 저는 실무에서 아래와 같이 활용하기도 했답니다~ 물론 아래처럼 했다는 아니지만, 문자열이 굉장히 길어지고, 정확한 시작 포인트를 명시하고 싶을때 아래와 같이 활용하면 편합니다~
스크린샷 2023-04-18 오후 11 21 31

(4) extension 활용하기

스크린샷 2023-04-18 오후 11 26 45

위와 같이 mac 에서는 command, window 에서는 alt..? 를 누르고 클릭하면 해당 메서드의 위치로 이동하게되어지는데요,

스크린샷 2023-04-18 오후 11 27 37

어떤 extension 메서드들이 있고, 테스트해보며 안드로이드에서 어떻게 활용해보면 좋을지 생각을 공유해주세요~

위 내용 말고도 kotlin 스럽게 String 이 활용되는 방법이나, 경험이 있으면 공유해주세요!

심화

docs 를 보면 아래와 같은 내용이 나오는데요,
스크린샷 2023-04-18 오후 10 58 41

Q. var 변수인 경우에, 우리는 String 을 계속 바꿔주며 변수를 할당해줄수 있는데, 왜 immutable (불변) 하다고 표현했을까요?

var name ="대환"
name = "민수" // name 이라는 변수에 "대환" 도 넣고 "민수" 도 넣었고,
name = name + " 멋쟁이" // 이렇게 하면 name 이 "민수 멋쟁이" 도 되는데.. 도대체 뭐가 불변인 것 일까요?

진짜 심화

JVM 에서 String 이 메모리 할당을 어떻게 받는지 알아보면 좋을것같아요

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant