ios - स्विफ्ट-स्ट्रिंग से "चरित्र हटाएं



xcode string (6)

मेरे पास एक स्ट्रिंग है जो "वैकल्पिक (" 5 ")" है। मुझे 5 के आस-पास "" को हटाने की जरूरत है। मैंने इसे 'वैकल्पिक' हटा दिया है:

text2 = text2.stringByReplacingOccurrencesOfString("Optional(", withString: "", options: NSStringCompareOptions.LiteralSearch, range: nil)

मुझे "अक्षरों को हटाने में कठिनाई हो रही है क्योंकि वे कोड में स्ट्रिंग के अंत को निर्दिष्ट करते हैं।

https://src-bin.com


Answer #1

स्विफ्ट 3 और स्विफ्ट 4:

text2 = text2.textureName.replacingOccurrences(of: "\"", with: "", options: NSString.CompareOptions.literal, range:nil)

स्विफ्ट 3.0.1 में अपडेट किए गए नवीनतम दस्तावेज हैं:

  • शून्य चरित्र ( \0 )
  • बैकस्लैश ( \\ )
  • क्षैतिज टैब ( \t )
  • रेखा फ़ीड ( \n )
  • कैरिज रिटर्न ( \r )
  • डबल कोट ( \" )
  • एकल उद्धरण ( \' )
  • यूनिकोड स्केलर ( \u{n} ), जहां n एक और आठ हेक्साडेसिमल अंकों के बीच है

यदि आपको अधिक जानकारी चाहिए तो आप here आधिकारिक दस्तावेज़ों को देख सकते हैं


Answer #2

अंततः मुझे खेल के मैदान में काम करने के लिए मिला है, जिसमें कई वर्ण हैं जिन्हें मैं स्ट्रिंग से निकालने का प्रयास कर रहा हूं:

var otherstring = "lat\" : 40.7127837,\n"
var new = otherstring.stringByTrimmingCharactersInSet(NSCharacterSet.init(charactersInString: "la t, \n \" ':"))
count(new) //result = 10
println(new) 
//yielding what I'm after just the numeric portion 40.7127837

Answer #3

जैसा कि मार्टिन आर कहते हैं, आपकी स्ट्रिंग "वैकल्पिक (" 5 ")" ऐसा लगता है कि आपने कुछ गलत किया है।

dasblinkenlight आपको जवाब देता है तो यह ठीक है, लेकिन भविष्य के पाठकों के लिए, मैं वैकल्पिक कोड जोड़ने की कोशिश करूंगा:

if let realString = yourOriginalString {
    text2 = realString
} else {
    text2 = ""
}

आपके उदाहरण में टेक्स्ट 2 स्ट्रिंग की तरह दिखता है और यह शायद पहले से ही "" पर सेट हो गया है, लेकिन ऐसा लगता है कि आपके पास ऑरिजिनलस्ट्रिंग प्रकार का वैकल्पिक (स्ट्रिंग) कहीं है जिसे इसे कास्ट या सही तरीके से उपयोग नहीं किया गया था।

मुझे उम्मीद है कि यह कुछ पाठक की मदद कर सकता है।


Answer #4

मान लें कि आपके पास एक स्ट्रिंग है:

var string = "potatoes + carrots"

और आप उस स्ट्रिंग में "टमाटर" शब्द को "टमाटर" से बदलना चाहते हैं

string = string.replacingOccurrences(of: "potatoes", with: "tomatoes", options: NSString.CompareOptions.literal, range: nil)

यदि आप अपनी स्ट्रिंग प्रिंट करते हैं, तो यह अब होगा: "tomatoes + carrots"

यदि आप पूरी तरह से स्टिंग से आलू शब्द को हटाना चाहते हैं, तो आप इसका उपयोग कर सकते हैं:

string = string.replacingOccurrences(of: "potatoes", with: "", options: NSString.CompareOptions.literal, range: nil)

यदि आप अपने स्टिंग में कुछ अन्य पात्रों का उपयोग करना चाहते हैं, तो इसका उपयोग करें:

  • शून्य चरित्र (\ 0)
  • बैकस्लैश (\)
  • क्षैतिज टैब (\ टी)
  • रेखा फ़ीड (\ n)
  • कैरिज रिटर्न (\ आर)
  • दोहरे उद्धरण (\")
  • एकल बोली (\')

उदाहरण:

string = string.replacingOccurrences(of: "potatoes", with: "dog\'s toys", options: NSString.CompareOptions.literal, range: nil)

आउटपुट: "dog's toys + carrots"


Answer #5

स्विफ्ट डबल कोट्स से बचने के लिए बैकस्लैश का उपयोग करता है। स्विफ्ट में भागने वाले विशेष पात्रों की सूची यहां दी गई है:

  • \0 (शून्य चरित्र)
  • \\ (बैकस्लैश)
  • \t (क्षैतिज टैब)
  • \n (लाइन फ़ीड)
  • \r (कैरिज रिटर्न)
  • \" (डबल कोट)
  • \' (एकल उद्धरण)

यह काम करना चाहिए:

text2 = text2.replacingOccurrences(of: "\\", with: "", options: NSString.CompareOptions.literal, range: nil)

Answer #6

यहां तेजी से 3 अद्यतन उत्तर है

  var editedText = myLabel.text?.replacingOccurrences(of: "\", with: "")
Null Character (\0)
Backslash (\\)
Horizontal Tab (\t)
Line Feed (\n)
Carriage Return (\r)
Double Quote (\")
Single Quote (\')
Unicode scalar (\u{n})




swift