स्विफ्ट 4 के लिए अपडेट किया गया
यह जाँचना कि एक स्ट्रिंग किसके साथ शुरू और समाप्त होती है
आप एक और स्ट्रिंग के साथ समानता का परीक्षण करने के लिए hasPrefix(_:)
और hasSuffix(_:)
तरीकों का उपयोग कर सकते हैं ।
let str = "Hello, playground"
if str.hasPrefix("Hello") { // true
print("Prefix exists")
}
if str.hasSuffix("ground") { // true
print("Suffix exists")
}
वास्तविक उपसर्ग और प्रत्यय Substrings प्राप्त करना
वास्तविक उपसर्ग या प्रत्यय विकल्प प्राप्त करने के लिए, आप निम्न विधियों में से किसी एक का उपयोग कर सकते हैं। मैं इसकी सरलता के लिए पहली विधि सुझाता हूं। सभी तरीकों के str
रूप में उपयोग करें
let str = "Hello, playground"
विधि 1: (अनुशंसित) prefix(Int)
औरsuffix(Int)
let prefix = String(str.prefix(5)) // Hello
let suffix = String(str.suffix(6)) // ground
मेरी राय में यह बेहतर तरीका है। नीचे दिए गए तरीकों 2 और 3 के विपरीत, यह विधि दुर्घटनाग्रस्त नहीं होगी यदि इंडेक्स सीमा से बाहर जाते हैं। यह स्ट्रिंग में सभी वर्ण वापस कर देगा।
let prefix = String(str.prefix(225)) // Hello, playground
let suffix = String(str.suffix(623)) // Hello, playground
बेशक, कभी-कभी क्रैश अच्छा होता है क्योंकि वे आपको बताते हैं कि आपके कोड में कोई समस्या है। तो नीचे दिए गए दूसरे तरीके पर भी विचार करें। यदि सूचकांक सीमा से बाहर चला जाता है तो यह एक त्रुटि फेंक देगा।
विधि 2: prefix(upto:)
औरsuffix(from:)
स्विफ्ट स्ट्रिंग इंडेक्स पेचीदा होते हैं क्योंकि उन्हें विशेष पात्रों (जैसे इमोजी) को ध्यान में रखना होता है। हालांकि एक बार जब आप सूचकांक प्राप्त कर लेते हैं तो उपसर्ग या प्रत्यय प्राप्त करना आसान होता है। (देखें मेरे दूसरे जवाब पर String.Index
।)
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
(फिर से, इस उत्तर को देखें ) का उपयोग करके एक सूचकांक बना सकते हैं ।
विधि 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
आगे की पढाई