[Swift] 영문자로만 이루어진 String  알아내기 + String Index 쉽게 접근하기
              
          2022. 8. 16. 16:52ㆍiOS
영문자로 된 글자만 유효하고, 기타 공백, 숫자, 특수 문자가 들어있는 경우는 제외하는 경우
Swift로 코드를 어떻게 짜볼까?
두가지 방법이 있을 수 있다.
1. 기타 공백, 숫자, 특수 문자의 문자열을 정의해서 포함하는 지 여부 확인
2. 영문자인 문자열을 정의해서 포함하는 지 여부 확인
func makingArr(_ str: String) -> [String] {
    var result = [String]()
    for i in 0..<str.count - 1 {
        if "a"..."z" ~= str[i] && "a"..."z" ~= str[i + 1] {
            result.append(str[i] + str[i + 1])
        }
    }
    return result
}
func checkStringSpecialRule(_ str: String) -> Bool {
    for character in str {
        if "~₩!@#$%^&*()_-+=}{\";:/?.>,<\\| 1234567890".contains(character) {
            return false
        }
    }
    return true
}
String에 접근하기 위해서는 String.Index로 접근하여야한다. 이가 너무 귀찮은 방법이기 때문에
편하게 사용하는 두가지 방법이 있다.
1. String을 Array화 시킨 후 index로 접근
2. subscript 작성
Array(str)
extension String {
    subscript(idx: Int) -> String? {
        guard (0..<count).contains(idx) else {
            return nil
        }
        let target = index(startIndex, offsetBy: idx)
        return String(self[target])
    }
    subscript (r: Range<Int>) -> String {
        let start = self.index(self.startIndex, offsetBy: r.lowerBound)
        let end = self.index(self.startIndex, offsetBy: r.upperBound)
        return String(self[start...end])
    }
}반응형
    
    
    
  'iOS' 카테고리의 다른 글
| [CoreAnimation] Layer Masking (feat. 키 모양 만들기) (0) | 2022.10.20 | 
|---|---|
| [CoreAnimation] CAReplicatorLayer 알아보기 (0) | 2022.10.20 | 
| [Swift] String Index (0) | 2022.01.15 | 
| Swift로 입력 받기 (출력은 print, 근데 입력은..?) (0) | 2022.01.07 | 
| [HIG] App Architecture (0) | 2022.01.06 |