티스토리 뷰

반응형

안녕하세요 :) Zedd에요.

오늘은 Swift에서 String "특정 문자"제거하는 방법을 알아볼거에요 :)

※ 특정 문자임에 주의하세요!!!!!!!!String은 이 방법으로 지우지 못합니다!!!!!!!!


시작할게요!


String에서 특정 문자 제거 




1. 양끝의 문자를 제거.


특정문자를 제거하고 싶긴 한데, 그 문자가 양 끝에 있을 때!

예를들어, 


"Hello!" -> 마지막의 !제거

"#iOS" -> #제거

"#Swift!" -> #와 마지막의 !제거


이런 작업을 하고싶을 때 좋은 메소드가 있답니다 :) 바로 trimmingCharacters라는 메소드에요! 

trimmingCharacters은 character Set을 받아, String 양쪽 끝의 문자를 제거하여 새 문자열을 반환한답니다. 예제를 볼게요.

var helloStr = "Hello!"

var iosStr = "#iOS"

var swiftStr = "#Swift!"

helloStr.trimmingCharacters(in: ["!"])//Hello

iosStr.trimmingCharacters(in: ["#"])//iOS

swiftStr.trimmingCharacters(in: ["#","!"])//Swift


하지만, trimmingCharacters은 


var str = "Hello! Zedd"

str.trimmingCharacters(in: ["!"])//"Hello! Zedd"


이렇게 중간에 있는 Character는 제거하지 못한답니다. 



2. 중간에 있는 특정한 Character제거.


바로 Components메소드를 이용하는것인데요, 제가 components함수 굉장히 애용하는거 아시나요? 흠흠흠

여기에서, components를 소개했었죠 ㅎㅎ


당황하는 분들도 계실거에요 :)

아니 components는 해당 character를 기준으로 나눠주는 함수아냐??!?!?!?

맞습니다 :) components의 특성과 또 어떤 메소드의 조합으로..가운데에 있는 특정한 문자를 제거해볼거에요 XD


var str = "Hello~!@@@, Zedd"


우리는 "Hello Zedd"만 남겨볼게요. 


var str = "Hello~!@@@, Zedd"

str.components(separatedBy: ["~","!","@",","]).joined()//Hello Zedd


짠~~~  components만 했을 때의 결과는, 



이렇지만, 우리 joined배웠었죠? 이 글에서요!

배열을 String으로 만들어주는 메소드였습니다 :)

 ["Hello", "", "", "", "", "", " Zedd"]를 String으로 만들어주면, Hello Zedd가 되겠죠?  ㅎㅎ


주의할 점


var str = "Hello~!@@@, Swift Zedd"

str.components(separatedBy: ["~","!","@",",","Swift"])//error!!


separatedBy에는 String이 들어갈 수 없습니다. character만 들어가야해요!!!

그러니까 저 Swift를 지워주고싶으면...


var str = "Hello~!@@@, Swift Zedd"

str.components(separatedBy: ["~","!","@",",","S","w","i","f","t"]).joined()//Hello Zedd


이렇게,,,하나하나..해줘야 합니다ㅎㅎ


뭔가 꼼수..?같지만 편리한 것 같아요 :) 

오늘도 도움이 되었길 바라며..안녕!!!

반응형