यहाँ में एक उत्पादन के लिए तैयार समाधान है स्विफ्ट 3:
extension String {
init(unicodeScalar: UnicodeScalar) {
self.init(Character(unicodeScalar))
}
init?(unicodeCodepoint: Int) {
if let unicodeScalar = UnicodeScalar(unicodeCodepoint) {
self.init(unicodeScalar: unicodeScalar)
} else {
return nil
}
}
static func +(lhs: String, rhs: Int) -> String {
return lhs + String(unicodeCodepoint: rhs)!
}
static func +=(lhs: inout String, rhs: Int) {
lhs = lhs + rhs
}
}
उपयोग:
let a = String(unicodeCodepoint: 42) // "*"
var b = a + 126 // "*~"
b += 33 // "*~!"
ध्यान दें कि यह सब ASCII और यूनिकोड कोड पॉइंट्स के साथ काम करता है, तो आप यह कर सकते हैं:
var emoji = String(unicodeCodepoint: 0x1F469)! // ""
emoji += 0x200D // ""
emoji += 0x1F4BB // ""
एक निजी नोट के रूप में, मैं अपने कोड में इसके उपयोग नहीं होता। मैं ":" + 40
":40"
बनने की उम्मीद करता, ":("
नहीं। जहां 40
"("
हो जाता है आप एक दूसरे को पसंद करते हैं, तो यह आपके लिए अच्छी तरह से काम करना चाहिए :)
स्रोत
2017-04-07 21:43:04
उन्होंने यह भी 's + = इस्तेमाल कर सकते हैं" \ (UnicodeScalar (x)) "' – dasblinkenlight
एक अच्छा बात है कि। और इसे साफ़ करने के लिए, आप ऑपरेटर + = 'func + = (इनआउट बाएं: स्ट्रिंग, दाएं: Int) {left + =" \ (यूनिकोडस्कालर (दाएं)) " }' – connor
प्राप्त करने का कोई तरीका है तेजी से चरित्र से दशमलव मूल्य –