Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
57
Task/Substring/Swift/substring.swift
Normal file
57
Task/Substring/Swift/substring.swift
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
let string = "Hello, Swift language"
|
||||
let (n, m) = (5, 4)
|
||||
|
||||
// Starting from `n` characters in and of `m` length.
|
||||
do {
|
||||
let start = string.startIndex.advancedBy(n)
|
||||
let end = start.advancedBy(m)
|
||||
// Pure-Swift (standard library only):
|
||||
_ = string[start..<end]
|
||||
// With Apple's Foundation framework extensions:
|
||||
string.substringWithRange(start..<end)
|
||||
}
|
||||
|
||||
// Starting from `n` characters in, up to the end of the string.
|
||||
do {
|
||||
// Pure-Swift (standard library only):
|
||||
_ = String(
|
||||
string.characters.suffix(string.characters.count - n)
|
||||
)
|
||||
// With Apple's Foundation framework extensions:
|
||||
_ = string.substringFromIndex(string.startIndex.advancedBy(n))
|
||||
}
|
||||
|
||||
// Whole string minus last character.
|
||||
do {
|
||||
// Pure-Swift (standard library only):
|
||||
_ = String(
|
||||
string.characters.prefix(
|
||||
string.characters.count.predecessor()
|
||||
)
|
||||
)
|
||||
// With Apple's Foundation framework extensions:
|
||||
_ = string.substringToIndex(string.endIndex.predecessor())
|
||||
}
|
||||
|
||||
// Starting from a known character within the string and of `m` length.
|
||||
do {
|
||||
// Pure-Swift (standard library only):
|
||||
let character = Character("l")
|
||||
guard let characterIndex = string.characters.indexOf(character) else {
|
||||
fatalError("Index of '\(character)' character not found.")
|
||||
}
|
||||
let endIndex = characterIndex.advancedBy(m)
|
||||
_ = string[characterIndex..<endIndex]
|
||||
}
|
||||
|
||||
// Starting from a known substring within the string and of `m` length.
|
||||
do {
|
||||
// With Apple's Foundation framework extensions:
|
||||
let substring = "Swift"
|
||||
guard let range = string.rangeOfString(substring) else {
|
||||
fatalError("Range of substring \(substring) not found")
|
||||
}
|
||||
let start = range.startIndex
|
||||
let end = start.advancedBy(m)
|
||||
string[start..<end]
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue