文字列で始まり、あなたは別の文字列との平等をテストするためにhasPrefix(_:)
とhasSuffix(_:)
メソッドを使用することができます
で終わるものを確認する4
スウィフト。実際の接頭辞または接尾辞部分文字列を取得するためには、実際の接頭辞と接尾辞部分列
を取得
let str = "Hello, playground"
if str.hasPrefix("Hello") { // true
print("Prefix exists")
}
if str.hasSuffix("ground") { // true
print("Suffix exists")
}
、次のいずれかの方法を使用することができます。私はそれがシンプルさのための最初の方法をお勧めします。これは私の意見では、より良い方法である(推奨)prefix(Int)
とsuffix(Int)
let prefix = String(str.prefix(5)) // Hello
let suffix = String(str.suffix(6)) // ground
:すべてのメソッドは、メソッド1
let str = "Hello, playground"
としてstr
を使用しています。以下のメソッド2と3とは異なり、インデックスが境界外になるとこのメソッドはクラッシュしません。文字列内のすべての文字を返します。 もちろん、コードに問題があることを知らせるのでクラッシュすることもあります。したがって、以下の2番目の方法も考慮してください。インデックスが範囲外になると、エラーがスローされます。
方法2:彼らは(絵文字のような)アカウントの特殊文字を考慮する必要があるためprefix(upto:)
とsuffix(from:)
スウィフト文字列のインデックスはトリッキーです。しかし、インデックスを取得すると接頭辞や接尾辞を簡単に取得できます。 (String.Index
上my other answerを参照してください。)
let prefixIndex = str.index(str.startIndex, offsetBy: 5)
let prefix = String(str.prefix(upTo: prefixIndex)) // Hello
let suffixIndex = str.index(str.endIndex, offsetBy: -6)
let suffix = String(str.suffix(from: suffixIndex)) // ground
あなたが範囲外に行くのを防ぐためにしたい場合は、あなたがlimitedBy
を使用して索引を作ることができる(再び、this answerを参照してください)。
方法3:添字
文字列のコレクションですので、あなたは接頭辞と接尾辞を取得するために添字を使用することができます。
let prefixIndex = str.index(str.startIndex, offsetBy: 5)
let prefix = String(str[..<prefixIndex]) // Hello
let suffixIndex = str.index(str.endIndex, offsetBy: -6)
let suffix = String(str[suffixIndex...]) // ground
また読書