루비끈


Ruby의 문자열 개체는 하나 이상의 바이트 시퀀스를 저장하거나 조작하는 데 사용됩니다.

Ruby 문자열은 작은따옴표 문자열(')과 큰따옴표 문자열(")로 구분됩니다. 차이점은 큰따옴표 문자열이 더 많은 이스케이프 문자를 지원할 수 있다는 점입니다.

작은따옴표 문자열

가장 간단한 문자 문자열은 작은따옴표입니다. 즉, 문자열은 작은 따옴표 안에 저장됩니다:

'这是一个 Ruby 程序的字符串'

작은 따옴표 문자열 내에 작은 따옴표 문자를 사용해야 하는 경우 작은 따옴표 문자열에 백슬래시()를 사용해야 하므로 Ruby에서는 컴파일러가 다음과 같이 설명합니다. 이 작은따옴표 문자를 문자열의 종료 문자로 간주하지 마십시오.

'Won\'t you read O\'Reilly\'s book?'

백슬래시는 다른 백슬래시를 이스케이프할 수도 있으므로 두 번째 백슬래시 자체는 이스케이프 문자로 해석되지 않습니다.

다음은 문자열 관련 기능입니다. Ruby.

큰 따옴표로 묶인 문자열

큰 따옴표로 묶인 문자열에서는 #{} 파운드 기호와 중괄호를 사용하여 표현식의 값을 평가할 수 있습니다.

문자열에 포함됨 변수:

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

name1 = "Joe"
name2 = "Mary"
puts "你好 #{name1},  #{name2} 在哪?"


출력

你好 Joe,  Mary 在哪?

문자열의 수학적 연산:

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

x, y, z = 12, 36, 72
puts "x 的值为 #{ x }"
puts "x + y 的值为 #{ x + y }"
puts "x + y + z 的平均值为 #{ (x + y + z)/3 }"


위 예제의 출력은 다음과 같습니다.

x 的值为 12
x + y 的值为 48
x + y + z 的平均值为 40

Ruby는 %q 채택도 지원하며 %Q는 문자열 변수 %를 안내하는 데 사용됩니다. q는 작은따옴표 규칙을 사용하고, %Q는 큰따옴표 규칙을 사용하고 그 뒤에 다른 문자가 옵니다(! [ { 등, 시작 구분 기호 및 } ] ) 끝 구분 기호 등

q 다음 문자 또는 Q는 구분 기호입니다. 구분 기호는 영숫자가 아닌 단일 바이트 문자일 수 있습니다(예: [,{,(,<,! 등). 일치하는 종결자를 찾을 때까지 문자열을 읽습니다.

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

desc1 = %Q{Ruby 的字符串可以使用 '' 和 ""。}
desc2 = %q|Ruby 的字符串可以使用 '' 和 ""。|

puts desc1
puts desc2


위 예제의 출력은 다음과 같습니다.

Ruby 的字符串可以使用 '' 和 ""。
Ruby 的字符串可以使用 '' 和 ""。

이스케이프 문자

아래 첨자는 이스케이프 문자 또는 인쇄할 수 없는 문자일 수 있는 백슬래시 기호를 나열합니다.

참고: 큰따옴표로 묶인 문자열. , 이스케이프 문자는 구문 분석됩니다. 작은따옴표로 묶인 문자열에서는 이스케이프 문자가 구문 분석되지 않고 그대로 출력됩니다.

$KCODE = 'u'
백슬래시 기호16진수 문자설명
a0x07알람 기호
b0x08백스페이스 키
cx Control-x
C-xControl-x
e0x1b이스케이프 문자
f0x 0c폼 피드
M-C-x Meta-Control-x
n0x0aLine break
nnn8진수 표기법, 여기서 n은 0.7
r0x0d 범위에 있습니다. 기호 입력
s 0x20공백 문자
t0x09탭 문자
v0x0b세로 탭 문자
x 캐릭터 x
표현. UTF-8 또는 기타 최신 문자 집합을 사용하는 경우 문자는 1~4바이트로 표시될 수 있습니다. 프로그램 시작 부분에서 $KCODE를 사용하여 문자 집합을 다음과 같이 변경할 수 있습니다. $KCODE에 가능한 값은 다음과 같습니다.

Encoding

Description

a

ASCII(없음과 동일). 이것이 기본값입니다.
eEUC.
n없음(ASCII와 동일).
uUTF-8.

String 내장 메소드

String 메소드를 호출하려면 String 객체의 인스턴스가 필요합니다. String 개체 인스턴스를 만드는 방법은 다음과 같습니다.

new [String.new(str="")]

이렇게 하면 str의 복사본이 포함된 새 String 개체가 반환됩니다. 이제 str 개체를 사용하여 사용 가능한 모든 인스턴스 메서드를 호출할 수 있습니다. 예:

#!/usr/bin/ruby

myStr = String.new("THIS IS TEST")
foo = myStr.downcase

puts "#{foo}"

다음 결과가 생성됩니다.

this is test

여기 공개 문자열 메소드가 있습니다(str이 String 객체라고 가정):

52str.rstrip53str.rstrip!54str.scan(pattern) [또는]55str에서 지정된 부분을 제거하고 삭제된 부분을 반환합니다. 값이 범위를 벗어나고 인수가 Fixnum 형식을 취하는 경우 IndexError가 생성됩니다. 매개변수가 범위 형식인 경우 RangeError가 생성됩니다. 매개변수가 Regexp 및 문자열 형식인 경우 실행 작업이 무시됩니다. pattern이 문자열인 경우 str을 분할할 때 구분 기호로 사용됩니다. 패턴이 단일 공백인 경우 str은 공백을 기준으로 분할되며 선행 공백 및 연속 공백 문자는 무시됩니다.
일련번호방법 및 설명
1str % arg
형식 사양을 사용하는 형식 문자열입니다. arg에 대체 항목이 두 개 이상 포함된 경우 arg는 배열이어야 합니다. 형식 사양에 대한 자세한 내용은 "커널 모듈" 아래의 sprintf를 참조하세요.
2str * 정수
정수 문자열을 포함하는 새 문자열을 반환합니다. 즉, str은 정수번 반복됩니다.
3str + other_str
other_str을 str에 연결합니다.
4str << obj
객체를 문자열에 연결합니다. 개체가 0.255 범위의 고정 숫자 Fixnum인 경우 문자로 변환됩니다. 이것을 concat과 비교해보세요.
5str <=> other_str
str을 other_str과 비교하고 -1(보다 작음), 0(같음) 또는 1(보다 큼)을 반환합니다. 비교는 대소문자를 구분합니다.
6str == obj
str과 obj가 같은지 확인합니다. obj가 문자열이 아니면 false를 반환하고, str <=> obj이면 true를 반환합니다.
7str =~ obj
정규식 패턴 obj에 따라 str과 일치합니다. 일치가 시작되는 위치를 반환하고, 그렇지 않으면 false를 반환합니다.
8
9str.capitalize
문자열을 대문자로 변환하여 표시하세요.
10str.capitalize!
capitalize와 동일하지만 str이 변경되어 반환됩니다.
11str.casecmp
대소문자를 구분하지 않는 문자열 비교.
12str.center
문자열을 중앙에 배치하세요.
13str.chomp
문자열 끝(일반적으로 n)에서 레코드 구분 기호($/)를 제거합니다. 레코드 구분 기호가 없으면 아무 작업도 수행되지 않습니다.
14str.chomp!
chomp와 동일하지만 str이 변경되어 반환됩니다.
15str.chop
str.의 마지막 문자를 제거하세요.
16str.chop!
Chop과 동일하지만 str이 변경되어 반환됩니다.
17str.concat(other_str)
other_str을 str로 연결합니다.
18str.count(str, ...)
하나 이상의 문자 집합에 개수를 제공합니다. 여러 문자 세트가 있는 경우 이러한 세트의 교집합이 계산됩니다.
19str.crypt(other_str)
str에 단방향 암호화 해시를 적용합니다. 인수는 a.z, A.Z, 0.9, . 또는 / 범위의 각 문자로 구성된 2자 문자열입니다.
20str.delete(other_str, ...)
인수 교차 부분의 모든 문자가 제거된 str의 복사본을 반환합니다.
21str.delete!(other_str, ...)
삭제와 동일하지만 str이 변경되어 반환됩니다.
22str.downcase
모든 대문자가 소문자로 대체된 str의 복사본을 반환합니다.
23str.downcase!
downcase와 동일하지만 str이 변경되어 반환됩니다.
24str.dump
인쇄할 수 없는 모든 문자가 nnn 기호로 대체되고 모든 특수 문자가 이스케이프된 str 버전을 반환합니다.
25str.each(separator=$/) { |substr| block }
인수를 레코드 구분 기호로 사용하여 str을 구분하고(기본값은 $/) 각 하위 문자열을 제공된 블록에 전달합니다.
26str.each_byte { |fixnum| block }
str의 각 바이트를 block에 전달하고 각 바이트를 바이트의 10진수 표현으로 반환합니다.
27 str.each_line(separator=$/) { |substr| block }
매개변수를 레코드 구분 기호로 사용하여 str을 구분하고(기본값은 $/) 각 하위 문자열을 제공된 블록에 전달합니다.
28str.empty?
str이 비어 있으면 true를 반환합니다(예: 길이가 0).
29str.eql?(other)
두 문자열의 길이와 내용이 같으면 동일합니다.
30str.gsub(pattern, replacement) [또는]
str.gsub(pattern) { |match| block }

모든 패턴이 대체 또는 블록 값으로 대체된 str의 복사본을 반환합니다. . 패턴은 일반적으로 정규식 Regexp입니다. 문자열인 경우 정규식 메타 문자는 해석되지 않습니다(즉, /d/는 숫자와 일치하지만 'd'는 'd'가 뒤에 오는 백슬래시와 일치합니다).
31str[fixnum] [or] str[fixnum,fixnum] [or] str[range] [or] str[regexp] [or] str[regexp, fixnum] [or] str[other_str ]
str을 참조하려면 다음 매개변수를 사용하세요. 매개변수가 하나의 Fixnum이면, 매개변수가 두 개의 Fixnum이면 fixnum의 문자 인코딩이 반환되고, 오프셋(첫 번째 Fixnum)에서 시작하여 끝나는 문자열이 반환됩니다. length(두 번째 fixnum)는 범위를 포함하는 하위 문자열을 반환합니다. 매개변수가 range이면 범위 내의 하위 문자열이 반환되고, 매개변수가 regexp이면 일치하는 문자열의 일부가 반환됩니다. fixnum을 사용하면 fixnum 위치에서 일치하는 데이터가 반환되고, 매개변수는 other_str이면 other_str과 일치하는 하위 문자열이 반환됩니다. 음수 Fixnum은 문자열 끝에서 -1부터 시작합니다.
32str[fixnum] = fixnum [또는] str[fixnum] = new_str [또는] str[fixnum, fixnum] = new_str [또는] str[range] = aString [또는] str[regexp] =new_str [또는] str[regexp, fixnum] =new_str [또는] str[other_str] = new_str ]
전체 문자열 또는 문자열의 일부를 바꿉니다. 슬라이스!와 동의어입니다.
33str.gsub!(패턴, 교체) [또는] str.gsub!(패턴) { |match| block }
String#gsub 교체를 수행하고 교체가 없으면 str을 반환합니다. 수행한 다음 nil을 반환합니다.
34str.hash
문자열의 길이와 내용을 기반으로 해시를 반환합니다.
35str.hex
str의 선행 문자를 16진수 문자열(선택적 기호 및 선택적 0x)로 처리하고 해당 숫자를 반환합니다. 오류가 발생하면 0을 반환합니다.
36str.include? other_str [또는] str.include? fixnum
str에 지정된 문자열이나 문자가 포함되어 있으면 true를 반환합니다.
37str.index(substring [, offset]) [또는]
str.index(fixnum [, offset]) [or]
str.index(regexp [, offset])

다음으로 돌아가기 str에서 고정자 문자열, 문자(fixnum) 또는 패턴(regexp)이 처음 나타나는 인덱스입니다. 찾을 수 없으면 nil을 반환합니다. 두 번째 인수가 제공되면 검색을 시작할 문자열의 위치를 ​​지정합니다.
38str.insert(index, other_str)
주어진 인덱스의 문자 앞에 other_str을 삽입하고 str을 수정합니다. 음수 인덱스는 문자열 끝부터 계산되며 지정된 문자 뒤에 삽입됩니다. 의도는 주어진 인덱스에서 시작하는 문자열을 삽입하는 것입니다.
39str.inspect
이스케이프된 특수 문자가 포함된 인쇄 가능한 버전의 str을 반환합니다.
40str.intern [또는] str.to_sym
str에 해당하는 기호를 반환하거나, 이전에 존재하지 않는 경우 기호를 생성합니다.
41str.length
str의 길이를 반환합니다. 크기로 비교해 보세요.
42str.ljust(integer, padstr=' ')
정수가 str의 길이보다 큰 경우 길이가 정수인 새 문자열을 반환합니다. 새 문자열은 str과 왼쪽 정렬됩니다. 충전재로 padstr. 그렇지 않으면 str이 반환됩니다.
43str.lstrip
선행 공백을 제거한 str의 복사본을 반환합니다.
44str.lstrip!
str에서 선행 공백을 제거하거나 변경 사항이 없으면 nil을 반환합니다.
45str.match(pattern)
패턴이 정규 표현식이 아닌 경우 패턴을 정규 표현식 Regexp로 변환한 다음 str에서 일치 메서드를 호출합니다.
46str.oct
str의 선행 문자를 10진수 문자열(선택적 기호)로 처리하고 해당 숫자를 반환합니다. 변환에 실패하면 0이 반환됩니다.
47str.replace(other_str)
str의 내용을 other_str의 해당 값으로 바꿉니다.
48str.reverse
str의 역순인 새 문자열을 반환합니다.
49str.reverse!
Reverse str, str은 변경되어 반환됩니다. str에서 고정자 문자열, 문자(fixnum) 또는 패턴(regexp)이 마지막으로 나타나는 인덱스입니다. 찾을 수 없으면 nil을 반환합니다. 두 번째 인수가 제공되면 검색을 종료할 문자열의 위치를 ​​지정합니다. 이 지점을 넘는 문자는 고려되지 않습니다.
51str.rjust(integer, padstr=' ')

정수가 str의 길이보다 크면 정수 길이의 새 문자열을 반환합니다. 새 문자열은 str과 오른쪽 정렬됩니다. 충전재로 padstr. 그렇지 않으면 str이 반환됩니다.

후행 공백을 제거한 str 복사본을 반환합니다.
str에서 후행 공백을 제거하거나 변경 사항이 없으면 nil을 반환합니다.
str.scan(pattern) { |match, ...| block }두 가지 형태의 일치 패턴(정규식 Regexp 또는 A일 수 있음) string String)은 str을 반복합니다. 일치할 때마다 결과가 생성되어 결과 배열에 추가되거나 블록에 전달됩니다. 패턴에 그룹화가 포함되지 않은 경우 각 개별 결과는 일치하는 문자열 $&로 구성됩니다. 패턴에 그룹이 포함된 경우 각 개별 결과는 각 그룹에 대한 항목을 포함하는 배열입니다.
str.slice(fixnum) [또는] str.slice(fixnum, fixnum) [또는]str.slice(range) [또는] str.slice(regexp) [또는]
str. Slice(regexp, fixnum) [또는] str.slice(other_str)
str[fixnum] 등을 참조하세요.
str.slice!(fixnum) [또는] str.slice!(fixnum, fixnum) [or] str.slice!(범위) [또는] str.slice!(regexp) [또는] str.slice!(other_str)
56

str.split(pattern=$;, [limit])

str을 구분 기호에 따라 하위 문자열로 분할하고 이러한 하위 문자열의 배열을 반환합니다.
pattern이 정규식 Regexp인 경우 패턴이 일치하는 곳에서 str이 분할됩니다. 패턴이 길이가 1인 문자열과 일치하면 str이 개별 문자로 분할됩니다.

pattern 매개변수를 생략하면 $; 값이 사용됩니다. $;가 nil(기본값)이면 str은 ` `가 구분 기호로 지정된 것처럼 공백으로 분할됩니다.

limit 매개변수를 생략하면 후행 null 필드가 표시되지 않습니다. 한계가 양수이면 해당 필드 수까지 반환됩니다. 한계가 1이면 전체 문자열이 배열의 유일한 항목으로 반환됩니다. 제한이 음수인 경우 반환되는 필드 수는 무제한이며 후행 null 필드는 표시되지 않습니다.

57str.squeeze([other_str]*)
String#count에 대해 설명된 절차를 사용하여 other_str 인수에서 문자 시퀀스를 작성합니다. 집합에서 동일한 문자가 나타나는 경우 단일 문자로 대체되는 새 문자열을 반환합니다. 인수가 제공되지 않으면 모든 동일한 문자가 단일 문자로 대체됩니다.
58str.squeeze!([other_str]*)
squeeze 와 동일하지만 str이 변경되어 반환되며, 변경 사항이 없으면 nil입니다.
59str.strip
선행 및 후행 공백이 제거된 str의 복사본을 반환합니다.
60str.strip!
str에서 선행 및 후행 공백을 제거하거나 변경 사항이 없으면 nil을 반환합니다.
61str.sub(pattern, replacement) [또는]
str.sub(pattern) { |match| block }

str의 복사본을 반환하고, 패턴의 첫 번째 발생은 교체로 대체됩니다. 또는 블록의 가치. 패턴은 일반적으로 정규식 Regexp입니다. 문자열인 경우 정규식 메타문자가 해석되지 않습니다.
62str.sub!(pattern, replacement) [또는]
str.sub!(pattern) { |match| block }

String#sub 교체를 수행하고 str을 반환합니다. , 실행 , nil을 반환합니다.
63str.succ [또는] str.next
str의 상속을 반환합니다.
64str.succ! [또는] str.next!
String#succ와 동일하지만 str이 변경되어 반환됩니다.
65str.sum(n=16)
str에 있는 문자의 n비트 체크섬을 반환합니다. 여기서 n은 선택적 Fixnum 매개 변수이며 기본값은 16입니다. 결과는 단순히 str에 있는 각 문자의 이진 값을 모듈로 2n - 1로 합한 것입니다. 이는 특별히 좋은 체크섬은 아닙니다.
66str.swapcase
모든 대문자가 소문자로 변환되고 모든 소문자가 대문자로 변환된 str의 복사본을 반환합니다.
67str.swapcase!
은 String#swapcase와 동일하지만 str은 변경되고 반환되며, 변경 사항이 없으면 nil입니다.
68str.to_f
str의 선행 문자를 부동 소수점 숫자로 해석한 결과를 반환합니다. 유효한 숫자 끝을 넘어서는 추가 문자는 무시됩니다. str의 시작 부분에 유효한 숫자가 없으면 0.0이 반환됩니다. 이 메서드는 예외를 생성하지 않습니다.
69str.to_i(base=10)
str의 선행 문자를 정수 밑(2, 8, 10 또는 16)으로 해석한 결과를 반환합니다. 유효한 숫자 끝을 넘어서는 추가 문자는 무시됩니다. str의 시작 부분에 유효한 숫자가 없으면 0이 반환됩니다. 이 메서드는 예외를 생성하지 않습니다.
70str.to_s [또는] str.to_str
받은 값을 반환합니다.
71str.tr(from_str, to_str)
from_str의 문자를 to_str의 해당 문자로 대체하여 str의 복사본을 반환합니다. to_str이 from_str보다 짧으면 마지막 문자까지 채워집니다. 두 문자열 모두 c1.c2 표기법을 사용하여 문자 범위를 나타낼 수 있습니다. from_str이 ^로 시작하면 나열된 문자를 제외한 모든 문자를 의미합니다.
72str.tr!(from_str, to_str)
은 String#tr과 동일하지만 str은 변경되어 반환되거나 변경 사항이 없으면 nil입니다.
73str.tr_s(from_str, to_str)
String#tr에 설명된 규칙에 따라 str을 처리한 다음 번역에 영향을 미치는 반복 문자를 제거합니다.
74str.tr_s!(from_str, to_str)
은 String#tr_s와 동일하지만 str은 변경되고 반환되며, 변경 사항이 없으면 nil입니다.
75str.unpack(format)
문자열(바이너리 데이터를 포함할 수 있음)을 형식 문자열에 따라 디코딩하여 추출된 각 값의 배열을 반환합니다. 형식 문자는 일련의 단일 문자 명령으로 구성됩니다. 각 명령 뒤에는 명령이 반복되는 횟수를 나타내는 숫자가 올 수 있습니다. 별표(*)는 나머지 모든 요소를 ​​사용합니다. 밑줄(_)이 뒤에 올 수 있는 sSiIll 지시문은 지정된 유형에 대해 기본 플랫폼의 기본 크기를 사용하고, 그렇지 않으면 플랫폼 독립적인 일관된 크기를 사용합니다. 형식 문자열의 공백은 무시됩니다.
76str.upcase
모든 소문자를 대문자로 대체하여 str의 복사본을 반환합니다. 작업은 상황에 따라 달라지지 않으며 a부터 z까지의 문자만 영향을 받습니다.
77str.upcase!
str의 내용을 대문자로 변경하거나, 변경 사항이 없으면 nil을 반환합니다.
78str.upto(other_str) { |s| block }
str로 시작하여 other_str(포함)로 끝나는 연속 값을 탐색하고 각 값을 차례로 block에 전달합니다. String#succ 메소드는 각 값을 생성하는 데 사용됩니다.

문자열 압축 풀기 명령

다음 표에는 String#unpack 메서드에 대한 압축 풀기 명령이 나열되어 있습니다.

명령 은 후행 null과 공백이 제거된 설명
AString을 반환합니다.
aStringString.
BString각 문자에서 비트를 추출합니다(최상위 비트 먼저).
bString각 문자에서 비트를 추출합니다(최하위 비트부터).
CFixnum문자를 부호 없는 정수로 추출합니다.
cFixnum문자를 정수로 추출합니다.
D, dFloat은 sizeof(double) 길이 문자를 기본 double로 처리합니다.
EFloat은 sizeof(double) 길이 문자를 littleendian 바이트 순서에서 double로 처리합니다.
eFloat은 sizeof(float) 길이 문자를 littleendian 바이트 순서의 부동 소수점으로 처리합니다.
F, fFloat은 sizeof(float) 길이 문자를 기본 부동 소수점으로 처리합니다.
GFloat은 sizeof(double) 문자를 네트워크 바이트 순서에서 두 배로 처리합니다.
gFloat은 sizeof(float) 길이 문자를 네트워크 바이트 순서 부동 소수점으로 처리합니다.
HString각 문자에서 16진수를 추출합니다(최상위 비트 먼저).
hString각 문자에서 16진수를 추출합니다(최하위 비트 먼저).
IInteger은 sizeof(int) 길이(_로 수정됨)의 연속 문자를 기본 정수로 처리합니다.
iInteger은 sizeof(int) 길이( _ 로 수정됨)의 연속 문자를 부호 있는 기본 정수로 처리합니다.
LInteger 4개의 연속된 문자(_로 수정됨)를 부호 없는 기본 긴 정수로 처리합니다.
lInteger 4개의 연속된 문자(_로 수정됨)를 부호 있는 기본 긴 정수로 처리합니다.
MString인용문 인쇄 가능.
mStringBase64 인코딩.
NInteger은 네트워크 바이트 순서에서 4개의 문자를 부호 없는 long으로 처리합니다.
nFixnum두 문자를 네트워크 바이트 순서에서 부호 없는 짧은 문자로 처리합니다.
PString은 sizeof(char *) 문자를 포인터로 처리하고 참조 위치에서 emph{len} 문자를 반환합니다.
pString은 sizeof(char *) 문자를 null로 끝나는 문자에 대한 포인터로 처리합니다.
QInteger은 8자를 부호 없는 쿼드 워드(64비트)로 처리합니다.
qInteger은 8자를 부호 있는 쿼드 워드(64비트)로 처리합니다.
SFixnum두 개의 연속 문자(_를 사용하는 경우 다름)를 기본 바이트 순서의 부호 없는 짧은 문자로 처리합니다.
sFixnum두 개의 연속 문자(_를 사용하는 경우 다른 문자)를 기본 바이트 순서의 부호 있는 짧은 문자로 처리합니다.
UIntegerUTF-8 문자를 부호 없는 정수로 표현합니다.
uStringUU 인코딩.
VFixnum은 4개의 문자를 리틀 엔디안 바이트 순서의 부호 없는 long으로 처리합니다.
vFixnum두 문자를 리틀 엔디안 바이트 순서의 부호 없는 short로 처리합니다.
wIntegerBER 압축 정수.
X 한 문자 뒤로 건너뜁니다.
x 한 문자 앞으로 건너뜁니다.
ZString 첫 번째 null까지 후행 null을 제거하려면 *와 함께 사용됩니다.
@ 길이 매개변수로 제공되는 오프셋을 건너뜁니다.

예제

다양한 데이터의 압축을 풀려면 다음 예를 시도해 보세요.

rreee