2014-07-22 13 views
16

स्विफ्ट में isAlpha या isSpace का उपयोग करने में सक्षम होने के लिए आप स्विफ्ट में "ctype.h" लाइब्रेरी का उपयोग कैसे कर सकते हैं? या क्या यह बेहतर, स्विफ्ट, ऐसा करने का तरीका है?मैं यह देखने के लिए कैसे जांच सकता हूं कि स्ट्रिंग में व्हाइटस्पेस/अल्फान्यूमेरिक/आदि के वर्ण हैं या नहीं?

इस सवाल का जवाब है, लेकिन यह काम करने के लिए प्रतीत नहीं होता: Swift: how to find out if letter is Alphanumeric or Digit

यह पुस्तकालय आयात करने का तरीका निर्दिष्ट नहीं है। क्या कोई मुझे सही दिशा बतला सकता है?

यहाँ क्या मैं अब तक मिल गया है: पूरी स्ट्रिंग पर, नहीं चरित्र-दर-चरित्र

extension String { 
    subscript (i : Int) -> String { 
     return String(Array(self)[i]) 
    } 
} 

let whitespace = NSCharacterSet.whitespaceCharacterSet() 

let phrase = "Test case" 

for var i=0; i<countElements(phrase); i++ { 
    if whitespace.characterIsMember(phrase[i]) { //error 
     println("char is whitespace") 
    } 
} 
+0

यह एक अच्छा विचार तरीकों कि स्विफ्ट तार पर यूनिकोड का समर्थन नहीं करते उपयोग करने के लिए है? – trojanfoe

+0

ऐसा लगता है कि (ASCII- केवल) फ़ंक्शन है अल्फा(), isDigit() को स्विफ्ट से निकाल दिया गया है। लेकिन उस उत्तर से NSCharacterSet- आधारित विधि अभी भी काम करनी चाहिए। –

+0

मैं उस (NSCharacterSet) का उपयोग करने की कोशिश कर रहा हूं, लेकिन यह कहता रहता है कि "चरित्र unichar में परिवर्तनीय नहीं है"। – hazrpg

उत्तर

28

उपयोग NSCharacter:

let whitespace = NSCharacterSet.whitespaceCharacterSet() 

let phrase = "Test case" 
let range = phrase.rangeOfCharacterFromSet(whitespace) 

// range will be nil if no whitespace is found 
if let test = range { 
    println("whitespace found") 
} 
else { 
    println("whitespace not found") 
} 

आउटपुट:

whitespace found 
4

मैंने एक स्ट्रिंग एक्सटेंशन बनाया जो वास्तव में ऐसा करता है, उम्मीद है कि यह उपयोगी है।

extension String { 

    func containsWhiteSpace() -> Bool { 

     // check if there's a range for a whitespace 
     let range = self.rangeOfCharacterFromSet(.whitespaceCharacterSet()) 

     // returns false when there's no range for whitespace 
     if let _ = range { 
      return true 
     } else { 
      return false 
     } 
    } 
} 
3

छोटा विस्तार (तेज 3)

extension String { 
    var containsWhitespace : Bool { 
     return(self.rangeOfCharacter(from: .whitespacesAndNewlines) != nil) 
    } 
} 
संबंधित मुद्दे

 संबंधित मुद्दे