Ruby의 문자열
10422 단어 rubycodenewbiebeginnersprogramming
String Manipulation
문자열 생성
greetings = 'hello all!'
String::new
을 사용하면 주로 문자열을 원하는 인코딩 유형과 관련하여 문자열을 만드는 데 더 많은 옵션이 있습니다.greetings = String.new('hello all!', encoding: 'ASCII')
heredoc literal
을 사용할 수 있습니다.s = <<HEREDOC
This would contain specially formatted text.
That might span many lines
HEREDOC
예를 들어 데이터베이스에 연결된 백엔드에 있는 경우 특히 SQL과 같은 코드 스니펫을 추가하는 좋은 방법입니다.
원래 형식을 유지하고 내부에 보간을 포함할 수도 있습니다. 다음은 Ruby Guides의 두 가지 좋은 예입니다.
type = "healthy"
table = "food"
query = <<-SQL
SELECT * FROM #{table}
WHERE #{type} = true
SQL
doc = <<-TIME
Current time is #{Time.now}
TIME
print doc #=> Current time is 2022-06-07 14:51:09 +0000
작은따옴표를 사용하여 보간을 비활성화할 수 있습니다.
doc = <<-'TIME'
Current time is #{Time.now}
TIME
print doc #=> Current time is #{Time.now}
작은따옴표(하드) 및 큰따옴표(소프트)
Interpolation:
#{
sequence}
. We can place any code inside it. It is very useful.
name = 'all'
print 'hello #{name}!' #=> hello #{name}!
name = 'all'
print "hello #{name}!" #=> hello all!
⁉️ 가독성을 위해 보간이 있을 때만 이중따옴표를 사용하는 것이 좋지만, 코드를 통해 이중따옴표만 사용하기로 결정해도 문제가 없습니다.
문자열 조작
이스케이프 문자
일부 문자에는 특별한 의미가 있습니다. 예를 들어
"
는 의도한 것보다 먼저 문자열을 종료할 수 있습니다. 문자열에 표시할 수 있도록 앞에 백슬래시를 추가할 수 있습니다.print "Double quotes: \"" #=> Double quotes: "
다음은 일부 이스케이프 시퀀스 목록입니다.
이스케이프 시퀀스
\비
백스페이스, ASCII 08h(BS)
\티
가로 탭, ASCII 09h(TAB)
\N
개행(줄 바꿈), ASCII 0Ah(LF)
\V
세로 탭, ASCII 0Bh(VT)
\에프
양식 공급, ASCII 0Ch(FF)
\아르 자형
캐리지 리턴, ASCII 0Dh(CR)
\이자형
이스케이프, ASCII 1Bh(ESC)
\에스
공백, ASCII 20h(SPC)
\
백슬래시,\
\nnn
8진수 비트 패턴, 여기서 nnn은 1-3개의 8진수([0-7])입니다.
\xnn
16진수 비트 패턴, 여기서 nn은 1-2자리 16진수([0-9a-fA-F])
\unnnn
유니코드 문자, 여기서 nnnn은 정확히 4자리 16진수([0-9a-fA-F])입니다.
연쇄
보간을 사용하여 문자열을 그룹화하는 것과 같은 방식으로 연결을 사용할 수 있습니다.
print 'hello' + ' all' #=> hello all
print 'hello' << ' all' #=> hello all
print 'hello'.concat(' all') #=> hello all
하위 문자열
배열과 마찬가지로 인덱스에 액세스하여 하위 문자열에 액세스할 수 있습니다.
"hello"[0] #=> "h"
"hello"[0..1] #=> "he"
"hello"[0, 4] #=> "hell"
"hello"[-1] #=> "o"
행동 양식
문자열을 처리하는 데 도움이 되는 긴 메서드 목록이 있습니다. 주목해야 할 중요한 점은 bang으로 끝나는 일반적인 방법에서 mutationes
self
및 return self
입니다.일반적으로 강타가 없는 메서드는 변경하지 않고 새 문자열을 반환합니다.
capitalize
및 capitalize!
방법을 예로 들어 보겠습니다.a = "hello all!"
a.capitalize
print a #=> hello all!
a.capitalize!
print a #=> Hello all!
모범 사례는 항상 수익에 주의를 기울이는 것입니다.
replace
와 같은 일부 메서드는 강타가 없지만 어느 쪽이든 self
를 수정합니다.사용 가능한 방법을 살펴볼 수 있습니다here.
기호 대 문자열
symbols
는 메모리에 한 번만 저장되므로 속도가 빨라집니다. 해시에 사용하기에 좋습니다.Strings
반면에 내용이 변경될 수 있으므로 사용할 때마다 저장해야 합니다."string".object_id == "string".object_id #=> false
:symbol.object_id == :symbol.object_id #=> true
참조
Reference
이 문제에 관하여(Ruby의 문자열), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/andressa/strings-in-ruby-27dm텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)