ios - स्विफ्ट 1.2 और स्विफ्ट 2.0 में स्ट्रिंग की लंबाई




string swift (4)

आप इसके लिए एक्सटेंशन का उपयोग कर सकते हैं जैसे:

extension String {
     var length: Int { return count(self)         }  // Swift 1.2
}

और आप इसका उपयोग कर सकते हैं:

if mystr.length >= 3 {

}

या आप सीधे इस तरह से गिन सकते हैं:

if count(mystr) >= 3{

}

और यह मेरे लिए भी काम कर रहा है:

if count(mystr.utf16) >= 3 {

}

स्विफ्ट 2.0 के लिए:

extension String {
    var length: Int {
        return characters.count
    }
}
let str = "Hello, World"
str.length  //12

एक और विस्तार:

extension String {
    var length: Int {
        return (self as NSString).length
    }
}
let str = "Hello, World"
str.length //12

यदि आप प्रत्यक्ष उपयोग चाहते हैं:

let str: String = "Hello, World"
print(str.characters.count) // 12

let str1: String = "Hello, World"
print(str1.endIndex) // 12

let str2 = "Hello, World"
NSString(string: str2).length  //12

इस सवाल का पहले से ही यहाँ एक जवाब है:

स्विफ्ट के पिछले संस्करण में, मेरे पास निम्नलिखित कोड था।

func myfunc(mystr: String) {
    if mystr.utf16Count >= 3 {

स्विफ्ट 1.2 की नवीनतम रिलीज के साथ, मुझे अब निम्नलिखित त्रुटि मिलती है।

'utf16Count' is unavailable: Take the count of a UTF-16 view instead, i.e. count(str.utf16)

ठीक है, इसलिए मैं अपना कोड निम्नानुसार बदलता हूं।

func myfunc(mystr: String) {
    if count(mystr.utf16) >= 3 {

लेकिन वह काम नहीं करता है। मुझे अब इसके बजाय निम्नलिखित त्रुटि संदेश मिलता है।

'(String.UTF16View) -> _' is not identical to 'Int16'

स्विफ्ट 1.2 के साथ एक स्ट्रिंग की लंबाई प्राप्त करने का सही तरीका क्या है?


आपको वर्ण गुण का उपयोग करना होगा जिसमें गुण गणना शामिल है:

yourString.characters.count


count(mystr) सही तरीका है, आपको एन्कोडिंग को बदलने की आवश्यकता नहीं है।

यह: if count(mystr.utf16) >= 3 ठीक है जब तक आप Int16(3)

संपादित करें: यह एक पुराना उत्तर है। ओपी ने स्विफ्ट 2 को प्रतिबिंबित करने के लिए अपने प्रश्न को अपडेट किया और उपरोक्त उत्तर सही है।









xcode6.3