Для разделения строки на массив строк с определенной длиной в языке программирования Swift вы можете воспользоваться несколькими подходами. Вот несколько вариантов:
1. Использование цикла и метода split()
:
func splitStringWithLength(string: String, length: Int) -> [String] { var result: [String] = [] var currentIndex = string.startIndex while currentIndex < string.endIndex { let endIndex = string.index(currentIndex, offsetBy: length, limitedBy: string.endIndex) ?? string.endIndex let substring = string[currentIndex..<endIndex] result.append(String(substring)) currentIndex = endIndex } return result }
Этот метод splitStringWithLength()
принимает два параметра: исходную строку и желаемую длину каждой подстроки. Он использует цикл, чтобы перебирать строку и разделять ее на подстроки указанной длины, добавляя каждую подстроку в массив result
. Индекс currentIndex
используется для отслеживания текущей позиции в строке, а метод string.index(_:offsetBy:limitedBy:)
используется для получения индекса конца каждой подстроки. Функция возвращает массив полученных подстрок.
Пример использования:
let inputString = "Hello, world!" let splitArray = splitStringWithLength(string: inputString, length: 5) print(splitArray) // ["Hello", ", wor", "ld!"]
2. Использование метода enumerated()
и reduce()
:
func splitStringWithLength(string: String, length: Int) -> [String] { return string.enumerated().reduce([""]) { (result, current) in var mutableResult = result let (index, character) = current if index % length == 0 && index != 0 { mutableResult.append(String(character)) } else { mutableResult[mutableResult.count - 1] += String(character) } return mutableResult } }
Этот метод splitStringWithLength()
также принимает два параметра: исходную строку и желаемую длину каждой подстроки. Он использует метод enumerated()
для получения пар (индекс, символ) из строки и reduce()
для преобразования полученных пар в массив подстрок. Функция проверяет, делится ли текущий индекс на желаемую длину без остатка, и, в зависимости от этого, либо создает новую подстроку, либо добавляет символ к текущей подстроке. Результатом работы функции является массив полученных подстрок.
Пример использования:
let inputString = "Hello, world!" let splitArray = splitStringWithLength(string: inputString, length: 5) print(splitArray) // ["Hello", ", wor", "ld!"]
Оба варианта позволяют разделить исходную строку на подстроки с определенной длиной. Выбор метода зависит от ваших предпочтений и ситуации, в которой вы используете эту функциональность.