Swift Findig Substrings, 배열(Array)

Finding Substrings

let str = "Hello, Swift"
str.contains("Swift")
// .contains("Swift") 는 str 안에 "Swift" 가 포함되어있는지 Bool 값으로 표현해준다.

str.lowercased().contains("swift")
// str 안에 String값을 모두 소문자로 변경한 후 "swift"가 있는지 확인하는 방법이다. -> true

str.range(of: "swift", options: [.caseInsensitive])

let str2 = "Hello, Programming"
let str3 = str2.lowercased()

var common = str.commonPrefix(with: str2)
common = str.commonPrefix(with: str3, options: [.caseInsensitive])

문자열 찾는 방법은 여러가지가 존재한다.

.contains(" --- ") 를 사용하면 ---의 값이 존재하는지 Bool 값으로 확인할 수 있다.
.lowercased() 는 저장된 값을 모두 소문자로 변경할 수 있다.

배열

Array

let numArray = [1, 2, 3]
// [Int] 와 같이 [] 로 감싸져 있으면 배열
let multiArray = [[1, 2, 3], [1, 2, 3]]

Array Type

let strArray: Array<String>
let strArray2: [String]

같은 표현 방식이나 밑에와 같이 단축 사용된 식을 더 많이 사용한다.

let nums = [1, 2, 3]
let emptyArray: [Int] = []
let emptyArray2 = Array<Int>()
let emptyArray3 = [Int]()

배열은 타입이 매우 중요한데 설정하지 않고 빈공간으로 남겨두면 컴파일 에러가 발생한다.
그렇기 때문에 타입을 판단할 수 있는 값이 없는 경우, 타입을 꼭 설정해줘야한다. (위 3가지 방법 중 한가지를 선택해 사용할 수 있다.)

let zeroArray = [Int](repeating: 0, count: 10)

repeating = 채울값 , count = 채울 갯수
반복 된 수를 원하는 갯수만큼 출력할 때 사용하는 식이다.

인덱스를 불러오는 방식 중 주의해야할 점

불러올 인덱스를 숫자로 잘못 설정할 경우, 에러가 발생한다.
조금 더 안전하게 인덱스를 불러오려면 인덱스 명령어를 사용하여 불러오는것이 안전하다.

let fruits = ["Apple", "Banana", "Melon"]
fruits[0]
fruits[2]
fruits[0...1]

fruits[fruits.startIndex]
fruits[fruits.index(before: fruits.endIndex)]
// 인덱스를 숫자로 불러올 경우 인덱스의 갯수를 파악 하지 못해 오류가 발생 할 수 있다.
// 위와 같이 명령어를 사용하여 더욱 안전하게 불러올 수 있다.
// 마지막 인덱스의 경우 .endIndex 는 마지막의 다음 인덱스를 불러오는 명령어로 오류가 발생한다.
// 그렇기 때문에 .endIndex의 이전을 불러오는 .index(before: fruits.endIndex) 로 마지막 인덱스를 호출해야한다.

마지막 인덱스를 불러오기 위해 .endIndex 를 사용하게 되면 마지막의 다음 인덱스를 구하는 명령어 임으로 오류가 발생한다.

.endIndex의 이전을 불러오는 .index(before: fruits.endIndex) 를 사용하여 마지막 인덱스를 불러온다.

'◽️ Programming > Swift 문법' 카테고리의 다른 글

Swift enum  (0) 2024.03.01
Swift Closure  (0) 2024.03.01
Swift Format Specifier , Escape Swequence 문자열 규칙  (0) 2024.03.01
Swift (for 문 , enum , optional, unwrap)  (0) 2024.03.01
Swift Optinals Type  (0) 2024.03.01