Ruby에서 문자열을 배열로 변환하는 두 가지 방법
4999 단어 codenewbiewebdevrubybeginners
이번 주에는 문자열을 문자 배열로 변환하는 방법을 배운 2가지 방법을 공유하겠습니다. 약간의 뒷이야기를 하자면 저는 Codewars에서 알고리즘을 풀고 있었는데 문자열을 배열로 변환해야 했습니다. 나는 내가 아는 방법으로 해결했고 제출한 후 다른 답변을 스크롤하여 다른 사람들이 어떻게 했는지 배우고 하나 또는 두 개의 새로운 지식을 선택할 수 있습니다.
두 가지 방법은
chars
및 split
입니다. 둘 다 문자 배열을 반환하지만 하나가 다른 것보다 낫습니다.문자 사용
'프로그래밍'이라는 문자열을 사용합시다.
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
아래에 의견이 있으면 알려주십시오.
다음주까지
Reference
이 문제에 관하여(Ruby에서 문자열을 배열로 변환하는 두 가지 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/nkemjiks/two-ways-to-convert-a-string-to-an-array-in-ruby-43ho텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)