본문 바로가기
iOS/Swift

[Swift] Swift 알고리즘 - 문자열 / 배열

by 0inn 2022. 10. 11.

+ 계속 업데이트 예정입니다.

문자열

string[n] 형태로 사용하기

// "0inn"

let idx = str[0].index(str[0].startIndex, offsetBy: 2)
 
print(str[idx])	// "n"

 

string 안에 들어간 "*"를 “#“로 바꾸어 새로운 문자열로 반환해 달라.

// 사용법
str.replacingOccurrences(of: "*", with: "#")

// 원형
func replacingOccurrences(of target: String, with replacement: String) -> String

 

해당 문자 숫자인지 문자인지 확인

let string = "1A"

Array(string).forEach { i in
	print(i.isLetter)
    print(i.isNumber)
}

/*
false
true
true
false
*/

 

대소문자

var string = "aB"

print(string.uppercased())	// AB
print(string.lowercased())	// ab

 

공백 제거

string.trimmingCharacters(in: .whitespaces)

 

문자열 첫 문자와 마지막 문자

var string = "hello"

// 처음 문자
print(string.first!)	// h

// 마지막 문자
print(string.last!)	// o

// 처음 문자 확인
print(string.hasPrefix("h")) // true

// 마지막 문자 확인
print(string.hasSuffix("o")) // true


// 처음 문자 삭제
string.removeFirst()	// ello

// 마지막 문자 삭제
string.removeLast()	// ell

 

Int to String

let num = 10

// 문자열 보간 방법
let str1 = "\(num)"

// 문자열 이니셜 라이저 사용
let str2 = String(num)

 

String to Int

let str = "10"

let num = Int(10)	// Optional(10)
let number = Int(10)!	// 10

 

문자열 자르기

var str = "hello"

let startIndex = str.index(str.startIndex, offsetBy: 0)
let endIndex = str.index(str.endIndex, offsetBy: 5)

print(str[startIndex ..< endIndex])	// hello
print(str[startIndex ..< str.endIndex])	// hello

// 문자열 시작
print(str[str.startIndex]) // h

 

문자열 특정 문자 기준으로 자르기

var str = "one,two,three"

print(str.split(separator: ","))	// ["one", "two", "three"]

배열

배열 생성

var array = [Int])()
var array = [Int](repeating: 10, count: 0)

// 2차원 배열
var array = [[Int]](repeating: Array(repeating: 1, count: 5), count: 3)

 

배열 요소 추가

// append
var array = [1, 2, 3]
array.append(4)	// [1, 2, 3, 4]
array.append(contentsOf: [5, 6, 7])	// [1, 2, 3, 4, 5, 6, 7]

// insert: 오버헤드 발생 ! - insert하는 위치부터 배열을 재배치하기 때문
var array = [1, 2, 3]
array.insert(0, at: 0)	// [0, 1, 2, 3]
array.insert(contentsOf: [4, 5], at: 2)	// [0, 1, 4, 5, 2, 3]

 

배열 요소 삭제

var array = [1, 2, 3, 4, 5, 6, 7, 8, 9]

array.removeFirst()	// [2, 3, 4, 5, 6, 7, 8, 9]
array.popLast()	// [2, 3, 4, 5, 6, 7, 8]
array.remove(at: 2)	// [2, 3, 5, 6, 7, 8]
array.removeSubrange(1...3)	// [2, 7, 8]
array[0..<2] = []	// []

 

배열 중복 제거

// array = [1, 2, 2, 3]

[Int](Set(array))	 // array = [1 ,2 ,3]
var arr = array.filter { !array.contains($0) }	 // array = [1 ,2 ,3]

 

enumerated()

array 값에 enumerated() 함수를 사용하면 (index, value) 튜플형식으로 구현된 리스트형 리턴

let array = ["one", "two", "three"]

for (index, number) in arr.enumerated() {
	print("\(index), \(number)")
}

/*
0, one
1, two
2, three
*/

 

배열 찾는 값의 index 조회

var arr = ["h", "e", "l", "l", "o"]

if let idx = arr.firstIndex(of: "h") {
	print(idx)	// 0
}

 

배열 특정 index에서 삭제

// 해당 index에서 제거
arr.remove(at: index)

 

배열 뒤집기

// reverse() : 기존의 배열 거꾸로 뒤집기
var array = [1, 2, 3, 4, 5]
array.reverse()
print(array)	// [5, 4, 3, 2, 1]

// reversed() : 거꾸로 뒤집은 새로운 배열 리턴
var array = [1, 2, 3, 4, 5]
array.reversed()	// [5, 4, 3, 2, 1]
print(array)	// [1, 2, 3, 4, 5]

 

zip

var arr1 = [1, 2, 3]
var arr2 = [1, 1, 1]

print(zip(arr1, arr2).map { $0 * $1 }.reduce(0, +))	// 1 + 2 + 3 = 6

문자열 - 배열

문자열 배열을 문자열로 바꾸기

let array = ["h","i"]
print(array.joined(seperator: ""))	// hi

'iOS > Swift' 카테고리의 다른 글

[Swift] stride 함수 / Set  (0) 2022.10.25
[Swift] Swift 알고리즘 - 수학  (0) 2022.10.13
[Swift] Swift 알고리즘 - Dictionary  (0) 2022.10.12
[Swift] 클로저 (Closure)  (0) 2022.09.24
[Swift] Class vs. Struct vs. Enum  (0) 2022.09.06