Notice
Recent Posts
Recent Comments
Link
투케이2K
126. (swift/xcode) Subscript 서브스크립트 사용해 String 문자열 특정 인덱스 및 인덱스 범위 문자열 출력 - charAt , subString 본문
Swift
126. (swift/xcode) Subscript 서브스크립트 사용해 String 문자열 특정 인덱스 및 인덱스 범위 문자열 출력 - charAt , subString
투케이2K 2022. 11. 13. 11:21[개발 환경 설정]
개발 툴 : XCODE
개발 언어 : SWIFT
[소스 코드]
// MARK: - [테스트 메인 함수 정의 실시]
func testMain() {
print("")
print("====================================")
print("[\(self.ACTIVITY_NAME) >> testMain() :: 테스트 함수 시작 실시]")
print("====================================")
print("")
/*
// -----------------------------
[요약 설명]
// -----------------------------
1. Subscript 는 읽고, 쓰기 가능 OR 읽기 가능 옵션을 선택할 수 있습니다
// -----------------------------
2. Subscript 는 클래스, 구조체, 열거형에서 정의할 수 있습니다
// -----------------------------
*/
// [비동기 처리 수행]
DispatchQueue.main.async {
// [초기 변수 선언 실시]
let strData = "TWOK"
// [로그 출력 실시]
print("")
print("====================================")
print("[\(self.ACTIVITY_NAME) >> testMain() :: 로그 출력 실시]")
print("[0 인덱스 문자열 :: \(strData[0])]")
print("[3 인덱스 문자열 :: \(strData[3])]")
print("[0 ~ 3 인덱스 문자열 :: \(strData[0..<3])]")
print("[3 이상 인덱스 문자열 :: \(strData[3...])]")
print("[6 이상 인덱스 문자열 :: \(strData[6...])]")
print("====================================")
print("")
}
}
// MARK: - [String 확장 정의 실시]
extension String {
//---------------------------
// [문자열 특정 인덱스 번지 문자 출력 : charIndexn: strData[0]]
//---------------------------
subscript(idx: Int) -> String {
if self == nil || idx < 0 || idx >= self.count {
return ""
}
let target = self.index(startIndex, offsetBy: idx)
return String(self[target])
}
//---------------------------
// [특정 범위 내 문자열 출력 : [start..<end] : strData[0..<3]]
//---------------------------
subscript(_ range: CountableRange<Int>) -> String {
if self == nil || range.startIndex < 0 || range.endIndex > self.count {
return ""
}
let start = self.index(startIndex, offsetBy: max(0, range.lowerBound))
let end = self.index(startIndex, offsetBy: min(self.count, range.upperBound))
return String(self[start..<end])
}
//---------------------------
// [특정 문자열 인덱스 기준 이후 문자열 출력 : [index...] : strData[3...]]
//---------------------------
subscript(_ range: CountablePartialRangeFrom<Int>) -> String {
if self == nil || max(0, range.lowerBound) < 0 || max(0, range.lowerBound) > self.count {
return ""
}
let start = self.index(startIndex, offsetBy: max(0, range.lowerBound))
return String(self[start...])
}
}
[결과 출력]
반응형
'Swift' 카테고리의 다른 글
Comments