GnuSmalltalkUsersGuide:BaseChapter 155
- String
String
네임스페이스 Smalltalk에 정의됨
슈퍼클래스: CharacterArray
범주: 컬렉션-텍스트
- 나의 인스턴스들은 8-비트 문자 문자열을 나타낸다. 매우 흔한 사례로, 특별히 최적화된다.
다국어화를 고려 중이라면 String은 UnicodeString의 인코딩된 표현으로만 취급해야 한다. I18N 패키지는 시스템에 더 많은 Unicode 친화성을 추가하여 대부분의 경우 인코딩과 디코딩이 자동으로 실행되도록 한다. 그런 경우 String은 인코딩이 알려지지 않거나, 무관하거나, 시스템 티폴트인 것으로 가정될 때를 나타낸다.
String 클래스: 인스턴스 생성
fromCData: aCObject
aCObject가 가리키는 위치에서 시작해 첫 NUL 문자까지 바이트를 포함하는 String을 응답하라.
fromCData: aCObject size: anInteger
aCObject가 가리키는 위치에서 시작하는 anInteger 바이트를 포함한 String을 응답하라.
String 클래스: 다중바이트 인코딩
isUnicode
false를 응답하라; 수신자는 문자가 아니라 바이트를 보관한다 (예: 인코딩된 형태).
String: 접근하기
byteAt: index
수신자의 index번째 문자 변수의 ASCII 값을 응답하라.
byteAt: index put: value
수신자의 index번째 색인 인스턴스 변수에 (Character value: value)를 보관하라.
String: 기본
, aString
수신자 내 모든 요소 다음에 aSequenceableCollection 내 모든 요소를 포함하는 ArrayedCollection의 새 인스턴스를 응답하라.
= aCollection
수신자의 항목이 aCollection 내 항목과 일치하는지 응답하라.
String: built-ins
asCData: aCType
수신자를 주어진 타입으로 된 CObject로 변환하라.
at: anIndex
수신자의 index번째 색인된 인스턴스 변수를 응답하라.
at: anIndex put: value
수신자의 index번째 색인된 인스턴스 변수를 보관하라.
basicAt: anIndex
수신자의 index번째 색인된 인스턴스 변수를 응답하라. 해당 메서드는 오버라이드되어선 안 되므로 대신 at:을 오버라이드하라.
basicAt: anIndex put: value
수신자의 index번째 색인된 인스턴스 변수를 보관하라. 해당 메서드는 오버라이드되어선 안 되므로 대신 at:put:을 오버라이드하라.
hash
수신자에 대한 해시값을 응답하라.
replaceFrom: start to: stop with: aString startingAt: replaceStart
start부터 stop까지 문자를 aString의 replaceStart 위치부터 시작해 ASCII 코드가 aString에 포함되어 있는 새 문자로 대체하라.
replaceFrom: start to: stop withByteArray: byteArray startingAt: replaceStart
start부터 stop까지 문자를 byteArray의 replaceStart 위치부터 시작해 ASCII 코드가 byteArray에 포함되어 있는 새 문자로 대체하라.
similarityTo: aString
aString과 수신자 내 유사성을 나타낸 숫자를 응답하라. 0은 동등성(equality), 음수는 약간의 차이를 나타낸다. 속도를 위한 프리미티브로서 구현된다.
size
수신자의 크기를 응답하라.
String: 변환하기
asByteArray
ASCII 값의 ByteArray로 변환된 수신자를 리턴하라.
asString
하지만 나는 이미 String이다! 정말이다!
asSymbol
수신자에 해당하는 부호를 리턴한다.
encoding
수신자의 인코딩을 응답한다. 당신이 Iconv 패키지를 로딩하지 않는 이상 이는 구현되지 않는다.
String: filesystem
/ aName
수신자가 표시한 디렉터리 내에 'aName'으로 명명된 파일에 적절한 File 객체를 응답하라.
asFile
이름이 수신자 내에 있는 파일에 대한 File 객체를 응답하라.
String: 인쇄하기
displayOn: aStream
수신자의 표현을 aStream 상에 인쇄하라. #printOn:와 달리 해당 메서드는 추가 따옴표를 제거한다.
displayString
수신자를 나타내는 String을 응답하라. 대부분 객체의 경우 단순히 그것의 #printString 표현에 해당하지만, CharacterArrays와 문자의 경우 불필요한 달러나 큰따옴표 쌍이 제거된다.
isLiteralObject
수신자를 스몰토크 리터럴로 표현 가능한지 응답하라.
printOn: aStream
수신자의 표현을 aStream 상에 인쇄하라.
storeLiteralOn: aStream
수신자로 컴파일하는 스몰토크 리터럴을 aStream 상에 보관하라.
storeOn: aStream
수신자로 컴파일하는 스몰토크 코드를 aStream 상에 보관하라.
String: regex
=~ pattern
Regix 또는 String 객체 패턴에 매칭하기(match against) 위한 RegexResults 객체를 응답하라.
allOccurrencesOfRegex: pattern
수신자 내에 패턴의 일치결과(match)를 모두 찾아 OrderedCollection에 모아라.
allOccurrencesOfRegex: pattern do: aBlock
수신자 내에 패턴의 일치결과를 모두 찾아 RegexResults 객체를 aBlock으로 전달하라.
allOccurrencesOfRegex: pattern from: from to: to
수신자 내에서와 주어진 색인 범위 내에서 패턴의 일치결과를 모두 찾아라. 이를 후에 리턴될 OrderedCollection으로 모아라.
allOccurrencesOfRegex: pattern from: from to: to do: aBlock
수신자 내에서와 주어진 색인 범위 내에서 패턴의 매치를 모두 찾아라. 각 일치결과에 대해 RegexResults 객체를 aBlock으로 전달하라.
asRegex
Regex 객체로 변환된 수신자를 응답하라.
copyFrom: from to: to replacingAllRegex: pattern with: aStringOrBlock
from과 to 사이에 수신자의 하위문자열을 리턴한다. 해당 문자열 부분에서 어떤 패턴의 매치든 다음과 같이 aStringOrBlock을 이용해 대체된다: 블록일 경우 RegexResults 객체가 전달되고, 문자열인 경우 %n 시퀀스는 일치결과의 포착된 하위표현식으로 대체된다 (#%에서와 같이).
copyFrom: from to: to replacingRegex: pattern with: aStringOrBlock
from과 to 사이에 수신자의 하위문자열을 리턴한다. 패틴이 해당 문자열 부분에서 매치를 갖는 경우 매치는 다음과 같이 aStringOrBlock을 이용해 대체된다: 그것이 블록인 경우 RegexResults 객체가 전달되고, 문자열인 경우 %n 시퀀스는 일치결과의 포착된 하위표현식으로 대체된다 (#%에서와 같이).
copyReplacingAllRegex: pattern with: aStringOrBlock
다음과 같이 (존재 시) aStringOrBlock을 이용해 패턴의 모든 매치를 대체한 다음 수신자를 리턴한다: 그것이 블록인 경우 블록일 경우 RegexResults 객체가 전달되고, 문자열인 경우 %n 시퀀스는 일치결과의 포착된 하위표현식으로 대체된다 (#%에서와 같이).
copyReplacingRegex: pattern with: aStringOrBlock
다음과 같이 (존재 시) aStringOrBlock을 이용해 패턴의 첫 번째 매치를 대체한 다음 수신자를 리턴한다: 그것이 블록인 경우 블록일 경우 RegexResults 객체가 전달되고, 문자열인 경우 %n 시퀀스는 일치결과의 포착된 하위표현식으로 대체된다 (#%에서와 같이).
indexOfRegex: regexString
수신자 내에 regex의 발생이 존재하는 경우 가장 좌측의 가장 긴 일치결과에 해당하는 Interval을 리턴하라. 그 외의 경우 nil을 리턴하라.
indexOfRegex: regexString from: from to: to
수신자 내에 regex의 발생이 존재하는 경우 주어진 범위 내에서 발생하는 가장 좌측의 가장 긴 일치결과에 해당하는 Interval을 리턴하라. 그 외의 경우 nil을 리턴하라.
indexOfRegex: regexString from: from to: to ifAbsent: excBlock
수신자 내에 regex의 발생이 존재하는 경우 주어진 색인 범위 내에서 발생하는 가장 좌측의 가장 긴 일치결과에 해당하는 Interval을 리턴하라. 그 외의 경우 excBlock을 평가하고 결과를 리턴하라.
indexOfRegex: regexString ifAbsent: excBlock
수신자 내에 regex의 발생이 존재하는 경우 가장 좌측의 가장 긴 일치결과에 해당하는 Interval을 리턴하라. 그 외의 경우 excBlock을 평가하고 결과를 리턴하라.
indexOfRegex: regexString startingAt: index
수신자 내에 regex의 발생이 존재하는 경우 주어진 색인 이후에 가장 좌측의 가장 긴 일치결과에 해당하는 Interval을 리턴하라. 그 외의 경우 nil을 리턴하라.
indexOfRegex: regexString startingAt: index ifAbsent: excBlock
수신자 내에 regex의 발생이 존재하는 경우 주어진 색인 이후에 시작하는 가장 좌측의 가장 긴 일치결과에 해당하는 Interval을 리턴하라. 그 외의 경우 excBlock을 평가하고 결과를 리턴하라.
matchRegex: pattern
수신자가 패턴에 정확히 일치하는 결과인지 응답하라. 이는 패턴이 시작과 끝에 암시적으로 앵커(anchor)되었음을 의미한다.
matchRegex: pattern from: from to: to
주어진 색인 범위가 패턴에 정확히 일치하는 결과인지 응답하라. 이는 from에서 시작해 to에서 끝이 나는 일치결과가 있음을 의미한다 (굳이 from에서 시작하는 가장 긴 일치결과일 필요는 없다).
occurrencesOfRegex: pattern
수신자 내의 패턴이 반복되는 횟수를 리턴한다.
occurrencesOfRegex: pattern from: from to: to
주어진 색인 내에서 수신자 내의 패턴이 반복되는 횟수를 리턴한다.
occurrencesOfRegex: pattern startingAt: index
주어진 색인에서 검색을 시작해 수신자 내의 패턴이 반복되는 횟수를 리턴한다.
onOccurrencesOfRegex: pattern do: body
수신자 내에서 패턴의 모든 매치를 찾고, 각 일치결과마다 aBlock에 RegexResults를 전달하라.
onOccurrencesOfRegex: pattern from: from to: to do: aBlock
수신자 내에서와 주어진 색인 범위 내에서 패턴의 모든 일치결과를 찾아라. 각 일치결과마다 aBlock에 RegexResults를 전달하라.
replacingAllRegex: pattern with: aStringOrBlock
패턴이 수신자 내에서 매치를 찾지 못한 경우 수신자를 리턴한다. 그 외의 경우 문자열에서 해당 부분 내에 있는 어떤 패턴의 일치결과든 다음과 같이 aStringOrBlock을 이용해 대체된다: 그것이 블록인 경우 블록일 경우 RegexResults 객체가 전달되고, 문자열인 경우 %n 시퀀스는 일치결과의 포착된 하위표현식으로 대체된다 (#%에서와 같이).
replacingRegex: pattern with: aStringOrBlock
패턴이 수신자 내에서 일치결과를 찾지 못한 경우 수신자를 리턴한다. 일치결과가 있다면 다음과 같이 aStringOrBlock을 이용해 대체된다: 그것이 블록인 경우 블록일 경우 RegexResults 객체가 전달되고, 문자열인 경우 %n 시퀀스는 일치결과의 포착된 하위표현식으로 대체된다 (#%에서와 같이).
searchRegex: pattern
#=~와 동의어다. 수신자를 Regex 또는 String 객체 패턴에 매칭하기 위한 RegexResults 객체를 응답하라.
searchRegex: pattern from: from to: to
수신자를 Regex 또는 String 객체 패턴에 대조하기 위한 RegexResults 객체를 응답하면서, 일치결과를 명시된 색인 범위로 제한하라.
searchRegex: pattern startingAt: anIndex
수신자를 Regex 또는 String 객체 패턴에 대조하기 위한 RegexResults 객체를 응답하면서, 색인 anIndex에서의 일치결과부터 시작한다.
tokenize: pattern
패턴의 발생마다 수신자를 나누어라. 패턴에 일치하지 않는 모든 부분들이 구분되고, 리턴되는 Strings의 Array로 보관된다.
tokenize: pattern from: from to: to
패턴의 발생마다 수신자를 나누어라(from과 to 사이의 색인만 고려하여). 패턴에 일치하지 않는 모든 부분들이 구분되고, 리턴되는 Strings의 Array로 보관된다.
~ pattern
수신자가 Regex 또는 String 객체 패턴에 일치하였는지 응답하라.
String: 기능 검사하기
isString
항상 'true'를 응답하라.