Ruby에서 문자열을 배열로 변환하는 두 가지 방법

여러분, 안녕하세요.
이번 주에는 문자열을 문자 배열로 변환하는 방법을 배운 2가지 방법을 공유하겠습니다. 약간의 뒷이야기를 하자면 저는 Codewars에서 알고리즘을 풀고 있었는데 문자열을 배열로 변환해야 했습니다. 나는 내가 아는 방법으로 해결했고 제출한 후 다른 답변을 스크롤하여 다른 사람들이 어떻게 했는지 배우고 하나 또는 두 개의 새로운 지식을 선택할 수 있습니다.

두 가지 방법은 charssplit 입니다. 둘 다 문자 배열을 반환하지만 하나가 다른 것보다 낫습니다.

문자 사용



'프로그래밍'이라는 문자열을 사용합시다.

word = 'programming'
word.chars

# => ["p", "r", "o", "g", "r", "a", "m", "m", "i", "n", "g"]

문장에서 아래 예를 통해 이를 수행하는 방법을 보여줍니다.

sentence = 'Ruby is great'
sentence.chars

# => ["R", "u", "b", "y", " ", "i", "s", " ", "g", "r", "e", "a", "t"]

As you can see, it returns all the characters even the `space`

분할 사용



split을 사용하려면 문자열을 분할하는 방법을 알려주는 매개변수를 전달해야 합니다.

word = 'programming'
word.split('') # '' tells it to return each characters

# => ["p", "r", "o", "g", "r", "a", "m", "m", "i", "n", "g"]

문장의 경우 각 단어만 반환하고 싶을 수 있습니다.

sentence = 'Ruby is great'
sentence.split(' ') # tells it to split anywhere there is a space

# => ["Ruby", "is", "great"]

우리는 또한 문자로 나눌 수 있습니다.

'kolloioll'.split('o')
# => ["k", "ll", "i", "ll"]

split 메소드에 정규식을 전달할 수도 있습니다.

# split at every `fullstop` before a `comma`
"sha.,ger.,ffd.,uio.".split(/.(,)/)

# => => ["sha", ",", "ger", ",", "ffd", ",", "uio."]

그들 사이의 차이점



분할이 정규식을 사용하는 문자열에서 작동한다는 점을 감안할 때 유효하지 않은 문자가 포함된 문자열에서는 실패합니다.

"love\x80light".chars

#=> ["l", "o", "v", "e", "\x80", "l", "i", "g", "h", "t"]



"love\x80light".split('')

#=> ArgumentError (invalid byte sequence in UTF-8)

또 다른 차이점은 어디에서 분할할지 지정할 수 있는 split 와 달리 chars 에 대해서는 그렇게 할 수 없다는 것입니다. 문자열의 모든 문자를 배열로 반환해야 하는 경우에만 사용할 수 있습니다.

자원



Stackoverflow answer to difference between char and split
API dock - String split

아래에 의견이 있으면 알려주십시오.

다음주까지

좋은 웹페이지 즐겨찾기