Computer >> 컴퓨터 >  >> 프로그램 작성 >> Ruby

Ruby String 메서드(궁극적인 가이드)

문자열은 일련의 문자입니다.

문자열은 객체이므로 이를 사용하여 작업을 수행할 수 있는 많은 메서드가 있습니다.

이 기사에서는 가장 유용한 Ruby 문자열 메소드를 발견할 것입니다. 예시와 함께!

내용

  • 1 문자열 길이를 얻는 방법
  • 2 문자열이 비어 있는지 확인하는 방법
  • 3 문자열 보간이란 무엇입니까?
  • 4 부분 문자열 추출 방법
  • 5 문자열에 다른 문자열이 포함되어 있는지 확인하는 방법
  • 6 루비 문자열을 채우는 방법
  • 7 대소문자를 무시하고 문자열 비교
  • 8 문자열을 자르고 공백을 제거하는 방법
  • 9 문자열 접두사 및 접미사
  • 10 문자열을 문자 배열로 변환
  • 11 배열을 문자열로 변환
  • 12 문자열을 정수로 변환
  • 13 문자열이 숫자인지 확인
  • 14 문자 추가 방법
  • 15 Ruby에서 문자열의 문자 반복
  • 16 Ruby에서 문자열을 대문자 또는 소문자로 변환하는 방법
  • 17 여러 줄 문자열을 만드는 방법
  • 18 Gsub 메서드를 사용하여 문자열 내부의 텍스트를 바꾸는 방법
  • 19 문자열에서 마지막 문자를 제거하는 방법
  • 20 문자열 인코딩 변경 방법
  • 21자 세기
  • 22 요약
    • 22.1 관련

문자열 길이를 얻는 방법

쉬움:

"ruby".size
# 4

length를 사용할 수도 있습니다. , size 대신 , 그들은 같은 일을 합니다.

문자열이 비어 있는지 확인하는 방법

빈 문자열을 길이가 0인 문자열로 정의합니다.

이렇게 확인할 수 있습니다. :

"".size == 0
# true

또는 더 나은 방법으로 empty?를 사용하세요. 방법.

:

"".empty?
# true

공백 문자열은 길이가 0이거나 공백 문자로만 구성된 문자열입니다.

문자열 보간이란 무엇입니까?

문자열 보간을 사용하면 문자열을 함께 결합할 수 있습니다.

name = "Jesus"

puts "Hello #{name}"

어떤 사람들은 보간 안에 실제 코드를 가질 수 있다는 사실을 모릅니다.

다음은 예입니다.

puts "The total is #{1+1}"

# "the total is 2"

Ruby는 to_s를 호출합니다. 문자열 보간 블록의 메서드를 사용하면 개체가 자신을 문자열로 변환하도록 지시합니다.

하위 문자열을 추출하는 방법

하위 문자열은 문자열의 작은 부분이므로 시작, 중간 또는 끝과 같은 특정 부분만 원하는 경우에 유용합니다.

Ruby에서 하위 문자열을 어떻게 얻나요?

한 가지 방법은 시작 색인과 여러 문자를 대괄호 안에 쉼표로 구분하여 사용하는 것입니다.

좋아요 :

string = "abc123"

string[0,3]
# "abc"

string[3,3]
# "123"

첫 번째 숫자는 시작 색인입니다.

두 번째 숫자는 원하는 문자 수입니다.

"마지막 문자를 제외한 모든 문자 가져오기"와 같은 작업을 수행하려는 경우 범위를 사용할 수도 있습니다.

:

string = "abc123"

string[0..-2]
# "abc12"

이제 첫 번째 인덱스는 여전히 시작 인덱스이지만 두 번째 인덱스는 종료 인덱스(포함)입니다. 이 -2 마지막에서 두 번째 문자이고 -1 문자열의 끝입니다.

하위 문자열을 제거하거나 교체하려는 경우 .

다음과 같이 할 수 있습니다.

string[0..2] = ""

p string
# "123"

아주 좋아요!

문자열에 다른 문자열이 포함되어 있는지 확인하는 방법

문자열이 다른 문자열에 포함되어 있는지 확인하는 가장 쉬운 방법은 무엇입니까?

include? 방법:

string = "Today is Saturday"

string.include?("Saturday")
# true

index를 사용할 수도 있습니다. 방법:

string = "Today is Sunday"

string.index("day")
# 2

이 메서드는 부분 단어를 찾고 true 또는 false를 반환하는 대신 이 문자열의 시작 부분이 있는 인덱스를 제공합니다.

이 예에서 index "오늘"에서 "요일"을 찾고 있습니다.

"day"라는 단어가 포함된 모든 단어와 같은 패턴을 찾으려면 정규 표현식을 찾고 있습니다.

루비 문자열을 채우는 방법

문자열을 채우는 한 가지 방법은 rjust를 사용하는 것입니다. 두 개의 인수가 있는 메서드:

binary_string = "1101"
binary_string.rjust(8, "0")

# "00001101"

오른쪽으로 채우려면 ljust를 사용할 수 있습니다. :

binary_string = "1111"
binary_string.ljust(8, "0")

# "11110000"

대소문자를 무시하고 문자열 비교

문자열 비교는 대소문자를 구분하므로 비교하는 두 문자열이 같은 대소문자인지 확인해야 합니다.

이를 수행하는 일반적인 방법은 방정식의 양변을 downcase로 만드는 것입니다. 또는 upcase .

:

lang1 = "ruby"
lang2 = "Ruby"

lang1.upcase == lang2.upcase

casecmp?도 있습니다. 대소문자를 구분하지 않는 비교를 수행하지만 거의 사용되지 않는 방법입니다.

위의 예를 따르세요.

문자열 자르기 및 공백 제거 방법

파일이나 웹사이트에서 데이터를 읽을 때 문자열에 추가 공백이 있을 수 있습니다.

strip을 사용하여 추가 공간을 제거할 수 있습니다. 방법:

extra_space = "   test    "
extra_space.strip

# "test"

한 쪽(왼쪽/오른쪽)의 공백만 제거하려면 lstrip을 사용할 수 있습니다. &rstrip 대신 방법.

문자열 접두사 및 접미사

start_with?를 사용할 수 있습니다. 문자열이 특정 접두사로 시작하는지 확인하는 메서드입니다.

예시 :

string = "ruby programming"

string.start_with? "ruby"
# true

end_with?도 있습니다. 방법:

string = "ruby programming"

string.end_with? "programming"
# true

또한 Ruby 2.5에는 delete_prefix가 도입되었습니다. &delete_suffix 유용한 방법입니다.

예시 :

string = "bacon is expensive"

string.delete_suffix(" is expensive")

# "bacon"

문자열을 문자 배열로 변환

split를 사용하면 문자열을 가져와서 문자 배열로 쉽게 나눌 수 있습니다. 방법.

:

string = "a b c d"

string.split
# ["a", "b", "c", "d"]

기본적으로 split 공백을 구분 기호로 사용하지만 이 메서드에 인수를 전달하여 다른 구분 기호를 지정할 수 있습니다.

쉼표로 구분된 값(CSV) 목록을 분할하는 방법은 다음과 같습니다.

csv = "a,b,c,d"

string.split(",")
# ["a", "b", "c", "d"]

그러나 특히 CSV 데이터로 작업하는 경우 표준 라이브러리의 CSV 클래스 사용을 고려할 수 있습니다. 이 클래스는 열 머리글 읽기와 같은 작업을 수행할 수 있으므로 작업을 더 쉽게 수행할 수 있습니다.

배열을 문자열로 변환

문자열 배열을 가져오고 이러한 문자열을 큰 문자열로 결합하려면 join을 사용할 수 있습니다. 방법.

:

arr = ['a', 'b', 'c']

arr.join
# "abc"

join에 인수를 전달할 수도 있습니다. , 이 인수는 문자 구분 기호입니다.

:

arr = ['a', 'b', 'c']

arr.join("-")
# "a-b-c"

문자열을 정수로 변환

"49"와 같은 문자열을 변환하려는 경우 정수 49to_i를 사용할 수 있습니다. 방법.

:

"49".to_i

숫자가 포함되지 않은 문자열로 이것을 시도하면 0이 됩니다. .

:

"a".to_i
# 0

문자열이 숫자인지 확인

문자열이 정수로만 구성되어 있는지 알고 싶습니까?

할 수 있습니다 :

"123".match?(/\A-?\d+\Z/)
# true

"123bb".match?(/\A-?\d+\Z/)
# false
<블록 인용>

참고 :match? 메소드는 Ruby 2.4에서 도입되었으며 match를 사용할 수 있습니다. (물음표 제외) 이전 버전의 경우.

이 코드는 정규 표현식을 사용하므로 번역해 드리겠습니다.

"문자열의 시작 부분(\A ) 선택적 대시(-?)가 있는지 확인 , 음수의 경우), 거기에 숫자가 있는지 확인하십시오(\d+ ) 및 문자열 끝까지(\Z) ).”

문자 추가 방법

기존 문자열에 문자를 추가하여 더 작은 문자열에서 큰 문자열을 만들 수 있습니다. 이를 문자열 연결이라고도 합니다. .

다음은 <<를 사용하여 수행하는 방법입니다. 방법:

string = ""

string << "hello"
string << " "
string << "there"

# "hello there"

+=를 사용하지 마세요. 문자열 연결의 경우 매번 새 문자열을 생성하므로 성능에 좋지 않습니다!

Ruby에서 문자열의 문자 반복

때로는 문자열의 개별 문자로 작업하는 것이 유용합니다.

이를 수행하는 한 가지 방법은 each_char 방법:

"rubyguides".each_char { |ch| puts ch }
를 넣습니다.

chars를 사용할 수도 있습니다. 문자열을 문자 배열로 변환하는 메서드입니다. 그런 다음 each을 사용할 수 있습니다. 이 배열에서 반복합니다.

:

array_of_characters = "rubyguides".chars
# ["r", "u", "b", "y", "g", "u", "i", "d", "e", "s"]

Ruby에서 문자열을 대문자 또는 소문자로 변환하는 방법

문자열을 모두 대문자로 변환하려면 upcase를 사용할 수 있습니다. 방법.

:

"abcd".upcase
# "ABCD"

소문자로 변환하려면 downcase를 사용할 수 있습니다. 방법.

:

"ABCD".downcase
# "abcd"

여러 줄 문자열을 만드는 방법

두 가지 방법으로 여러 줄 문자열을 만들 수 있습니다.

하나는 heredocs를 사용하는 것입니다.

b = <<-STRING
aaa
bbb
ccc
STRING

또 다른 방법은 %Q를 사용하는 것입니다. :

a = %Q(aaa
bbb
ccc
)

Gsub 메서드를 사용하여 문자열 내부의 텍스트를 바꾸는 방법

문자열 안의 텍스트를 바꾸려면 gsub 메소드를 사용하십시오.

"개"라는 단어를 "고양이"로 바꾸자:

string = "We have many dogs"

string.gsub("dogs", "cats")

# "We have many cats"

문자열을 제거하려면 빈 문자열을 사용하세요. 두 번째 인수로.

:

string = "abccc"

string.gsub("c", "")

# "ab"

지금 :

gsub 메서드는 새 문자열을 반환합니다.

변경 사항을 원래 문자열에 적용하려면 gsub!를 사용할 수 있습니다. 방법.

gsub 메소드 또한 정규식을 인수로 사용하므로 정확한 단어 대신 패턴을 바꿀 수 있습니다.

예시 :

string = "We have 3 cats"

string.gsub(/\d+/, "5")

# "We have 5 cats"

이것은 모든 숫자를 대체합니다(\d+ ) 숫자가 5인 문자열에서 .

블록과 함께 이 방법을 사용하는 또 다른 방법:

title = "the lord of the rings"

title.gsub(/\w+/) { |word| word.capitalize }
# "The Lord Of The Rings"

gsub는 어떻습니까? 대 sub ?

음, sub gsub와 동일 , 하지만 첫 번째 일치 항목만 대체합니다.

Gsub는 모든 일치 항목을 대체합니다.

문자열에서 마지막 문자를 제거하는 방법

Kernel#gets 메서드를 사용하여 사용자에게 입력을 요청하는 경우 줄 바꿈 문자(\n ) 문자열 끝에 문자열을 직접 비교하는 것을 방지합니다.

:

puts "What's your name?"
name = gets

# type something...

추가 줄 바꿈 문자를 제거하는 가장 좋은 방법(\n )는 chomp 방법을 사용하는 것입니다. .

:

name = gets.chomp

Ruby 2.3부터 chomp 메소드는 제거하려는 문자를 제거할 수 있는 선택적 인수를 사용합니다.

:

"abcd?".chomp("?")
# "abcd"

그리고 문자가 없으면 원래 문자열을 반환합니다.

문자열 인코딩을 변경하는 방법

문자열은 바이트 시퀀스로 저장되며 인코딩에 따라 볼 수 있는 문자로 변환됩니다.

예를 들어, ASCII 인코딩의 숫자 65는 문자 "A"를 나타냅니다.

그러나 UTF-8과 같은 더 복잡한 인코딩도 있으므로 다른 언어(중국어 등)와 이모티콘까지 표현할 수 있습니다.

문자열의 현재 인코딩을 찾으려면 encoding을 사용할 수 있습니다. 방법.

"abc".encoding

# Encoding:UTF-8

디스크에서 파일을 읽거나 웹사이트에서 일부 데이터를 다운로드할 때 인코딩 문제가 발생할 수 있습니다.

encoding을 적용하여 이 문제를 해결할 수 있습니다. .

좋아요 :

"abc".force_encoding("UTF-8")

문자 세기

count를 사용하여 문자열에 문자가 몇 번 나타나는지 계산할 수 있습니다. 방법.

예:

str = "aaab"

str.count("a")
# 3

str.count("b")
# 1

요약

많은 문자열 메서드에 대해 배웠습니다. , 예를 들어 문자열을 배열로 나누기 위한 조인 및 분할, 문자열 내부의 텍스트를 대체하는 gsub 및 여분의 공백을 제거하기 위한 스트립 등이 있습니다.

나중에 이 페이지를 참조할 수 있으므로 북마크에 추가하고 모든 Ruby 친구들과 공유하세요. 🙂

읽어주셔서 감사합니다!