Notice
Recent Posts
Recent Comments
Link
투케이2K
17. (swift/xcode) equals , contains , split , trim , replaceAll , charAt 메소드 구현 실시 - Extension 추가 본문
Swift
17. (swift/xcode) equals , contains , split , trim , replaceAll , charAt 메소드 구현 실시 - Extension 추가
투케이2K 2021. 10. 13. 08:17[개발 환경 설정]
개발 툴 : XCODE
개발 언어 : SWIFT
[소스 코드]
import Foundation
/*
[ExtensionUtil 파일]
1. 생성 방법 : New File >> Swift File
2. 호출 방법 : 각 데이터 타입에 맞게 즉시 호출 (ex - str.euals(_string : data))
*/
// [extension 정의 실시 : Int]
extension Int {
var isEven : Bool { // 짝수 여부 확인
return self % 2 == 0
}
var isOdd : Bool { // 홀수 여부 확인
return self % 2 == 1
}
}
// [extension 정의 실시 : String]
extension String {
func equals (_string : String) -> Bool { // 두개 문자열이 같은지 확인
// 인풋으로 들어온 파라미터 데이터와 타입이 일치하는 경우
if(self == _string){
return true
}
else {
return false
}
}
func charAt (_index : Int) -> Character { // 특정 번지 문자만 출력 실시
let charIndex = self.index(self.startIndex, offsetBy: _index)
return self[charIndex]
}
func subString (_start : Int, _end : Int) -> String { // 부분 문자열 출력 실시
let startIndex = self.index(self.startIndex, offsetBy: _start)
let endIndex = self.index(self.startIndex, offsetBy: _end)
// 시작 ~ 종료까지 부분 문자열 출력
return String(self[startIndex...endIndex])
}
func trim () -> String { // 문자열 공백 제거 실시
// 시작, 끝 양쪽 공백 제거 실시
return self.trimmingCharacters(in: .whitespacesAndNewlines)
}
func replaceAll (_string : String, _replace : String) -> String { // 문자열 변경 실시
return self.replacingOccurrences(of: _string, with: _replace)
}
}
/*
[요약 설명]
1. 익스텐션(Extension)은 구조체, 클래스, 열거형, 프로토콜 타입에 새로운 기능을 추가할 수 있는 기능입니다
2. 익스텐션은 타입에 새로운기능을 추가할 수 있지만,기존에 존재하는 기능을 재정의할 수는 없습니다(원본 수정 불가)
3. [extension 메소드 설명] :
- equals = String 데이터가 같은지 확인합니다
- trim = 양쪽 끝 공백을 제거합니다
- replaceAll = 특정 문자열 변경을 실시합니다
- charAt = 특정 문자 인덱스 위치 값을 반환합니다
*/
// [테스트 메인 함수 정의 실시]
func testMain() {
print("[Program Start]")
print("")
// [초기 String 변수 정의 실시]
let str_one : String = " abcaBC 안녕 "
let str_two : String = " bcd,bCD,헬로 "
let str_three : String = " abcaBC 안녕 "
// [문자열 길이 확인 및 개별 문자 출력 실시]
print("str_one [len] : ", str_one.count)
print("")
for i in stride(from: 0, through: str_one.count-1, by: 1){
// trom : 시작 / through : 종료 / by : 증감
print("str_one [index] : ", str_one.charAt(_index: i))
}
print("")
// [문자열이 같은 지 확인 및 특정 문자열 포함 확인]
print("str_one [equals] str_two : ", str_one.equals(_string: str_two))
print("str_one [equals] str_three : ", str_one.equals(_string: str_three))
print("str_one [contains] 안녕 : ", str_one.contains("안녕"))
print("str_one [contains] 헬로 : ", str_one.contains("헬로"))
print("")
// [trim 사용해 시작, 끝 공백 제거]
print("str_one [len] : ", str_one.count)
print("str_one [trim] [len] : ", str_one.trim().count)
print("str_one [trim] [data] : ", str_one.trim())
print("")
// [replaceAll 사용해 문자열 치환 실시]
print("str_one [replaceAll] : ", str_one.replaceAll(_string: "a", _replace: "A"))
print("str_one [replaceAll] : ", str_one.replaceAll(_string: " ", _replace: ""))
print("")
// [split 사용해 특정 문자열 기준 분리 실시]
print("str_two [split] [원본] : ", str_two)
print("str_two [split] [0] : ", str_two.split(separator: ",")[0])
print("str_two [split] [1] : ", str_two.split(separator: ",")[1])
print("str_two [split] [2] : ", str_two.split(separator: ",")[2])
print("")
}
[결과 출력]
[요약 설명]
/*
[요약 설명]
1. 익스텐션(Extension)은 구조체, 클래스, 열거형, 프로토콜 타입에 새로운 기능을 추가할 수 있는 기능입니다
2. 익스텐션은 타입에 새로운기능을 추가할 수 있지만,기존에 존재하는 기능을 재정의할 수는 없습니다(원본 수정 불가)
3. [extension 메소드 설명] :
- equals = String 데이터가 같은지 확인합니다
- trim = 양쪽 끝 공백을 제거합니다
- replaceAll = 특정 문자열 변경을 실시합니다
- charAt = 특정 문자 인덱스 위치 값을 반환합니다
*/
반응형
'Swift' 카테고리의 다른 글
19. (swift/xcode) base64 encode 인코딩 , decode 디코딩 수행 실시 (0) | 2021.10.14 |
---|---|
18. (swift/xcode) Date 사용해 현재 날짜 및 시간 24 시간 형태로 출력 실시 (0) | 2021.10.13 |
16. (swift/xcode) throws , do catch 문을 사용해 에러 발생 상황 확인 실시 (0) | 2021.10.12 |
15. (swift/xcode) protocol 프로토콜 인터페이스 정의 및 extension 익스텐션 확장 기능 구현 실시 (0) | 2021.10.12 |
14. (swift/xcode) enum 열거체 자료형 사용해 데이터 정의 및 호출 실시 (0) | 2021.10.08 |
Comments