2015-03-25 14 views
21

का उपयोग कर स्ट्रिंग में प्रत्येक शब्द को कैपिटल कैसे करें स्ट्रिंग में प्रत्येक शब्द को कैपिटल करने के लिए कोई फ़ंक्शन है या यह मैन्युअल प्रक्रिया है?स्विफ्ट आईओएस

उदा। "बॉब लंबा है" और मुझे "बॉब इज टाल"

निश्चित रूप से कुछ है और स्विफ्ट आईओएस उत्तरों में से कोई भी मुझे यह कवर करने के लिए नहीं मिला है।

+0

वर someString = "lol"; someString.capitalized // "lol" – Alexander

+0

कुछ अन्य लोगों ने नीचे इस विकल्प का विस्तृत विवरण दिया। ;) –

उत्तर

33

आप के लिए capitalizedString

चर्चा
प्रत्येक शब्द के पहले अक्षर से एक स्ट्रिंग देख रहे हैं करने के लिए बदल इसकी संबंधित अपरकेस मान, और सभी शेष वर्ण उनके संबंधित लोअरकेस मानों पर सेट होते हैं।

और/या capitalizedStringWithLocale(_:)

निर्दिष्ट स्थान का उपयोग कर रिसीवर के एक बड़े अक्षरों में लिखा प्रतिनिधित्व देता है।

उपयोगकर्ताओं को प्रस्तुत तारों के लिए, वर्तमान लोकेल ([NSLocale currentLocale]) पास करें। सिस्टम लोकेल का उपयोग करने के लिए, शून्य पास करें।

+0

मैंने पूंजीकृत स्ट्रिंग विथलोकेल की कोशिश नहीं की है, इसलिए मैं इसके साथ खेलूंगा और कुछ मिनटों में टिप्पणी करूंगा। –

+1

धन्यवाद। ऐप्पल के दस्तावेज़ों पर तेज़ उदाहरण को बदल दिया गया था, जिसने मुझे लूप (मूर्तिकला) के लिए फेंक दिया था। –

3

वहाँ एक है कि

nameOfString.capitalizedString 

इस के लिए समारोह में बनाया गया है स्ट्रिंग के हर शब्द को कैपिटल होगा। केवल पहले अक्षर को कैपिटल करने के लिए आप उपयोग कर सकते हैं:

nameOfString.replaceRange(nameOfString.startIndex...nameOfString.startIndex, with: String(nameOfString[nameOfString.startIndex]).capitalizedString) 

Older Thread

+0

मैंने कोशिश की, और यह मेरे लिए काम नहीं किया। यह सिर्फ पहला शब्द टोपी लग रहा था। मुझे धागा मिला जिसने इसकी सिफारिश की। –

0

यहां मैं जो काम करता हूं उसके साथ आता है लेकिन मैं बेहतर कुछ भी खोल रहा हूं।

func firstCharacterUpperCase(sentenceToCap:String) -> String { 

    //break it into an array by delimiting the sentence using a space 
    var breakupSentence = sentenceToCap.componentsSeparatedByString(" ") 
    var newSentence = "" 

    //Loop the array and concatinate the capitalized word into a variable. 
    for wordInSentence in breakupSentence { 
     newSentence = "\(newSentence) \(wordInSentence.capitalizedString)" 
    } 

    // send it back up. 
    return newSentence 
} 

या यदि मैं इसे स्ट्रिंग क्लास के विस्तार के रूप में उपयोग करना चाहता हूं।

extension String { 
var capitalizeEachWord:String { 
    //break it into an array by delimiting the sentence using a space 
    var breakupSentence = self.componentsSeparatedByString(" ") 
    var newSentence = "" 

    //Loop the array and concatinate the capitalized word into a variable. 
    for wordInSentence in breakupSentence { 
     newSentence = "\(newSentence) \(wordInSentence.capitalizedString)" 
    } 

    // send it back up. 
    return newSentence 
} 
} 

फिर से, कुछ भी बेहतर स्वागत है।

8

ऊपर दिए गए उत्तर का एक उदाहरण।

var sentenceToCap = "this is a sentence." 
println(sentenceToCap.capitalizedStringWithLocale(NSLocale.currentLocale()) ) 

अंतिम परिणाम एक स्ट्रिंग

12

आईओएस 9 के बाद से एक स्थानीय पूंजीकरण समारोह पूंजीकृत पत्र भाषाओं में अलग हो सकता है के रूप में उपलब्ध है, "यह एक वाक्य है" है।

if #available(iOS 9.0, *) { 
    "istanbul".localizedCapitalizedString 
    // In Turkish: "İstanbul" 
} 
8

के लिए स्विफ्ट 3 यह capitalized को बदल दिया गया है।

चर्चा
यह गुण विहित (गैर स्थानीयकृत) मानचित्रण प्रदर्शन करती है। यह प्रोग्रामिंग संचालन के लिए उपयुक्त है जिसके लिए स्थिर परिणामों की आवश्यकता होती है जो वर्तमान लोकेल के आधार पर नहीं होती है। एक पूंजीकृत स्ट्रिंग एक स्ट्रिंग है जिसमें प्रत्येक शब्द में पहले अक्षर को उसके संबंधित अपरकेस मान में बदल दिया जाता है, और सभी शेष वर्ण उनके संबंधित लोअरकेस मानों पर सेट होते हैं। एक "शब्द" रिक्त स्थान, टैब, या लाइन टर्मिनेटर द्वारा डिलीमिट किए गए वर्णों का कोई अनुक्रम है (getLineStart (_: end: contentEnd: :) के लिए सूचीबद्ध)। विराम चिह्न को सीमित करने वाले कुछ सामान्य शब्द पर विचार नहीं किया जाता है, इसलिए यह संपत्ति आम तौर पर मल्टीवर्ड स्ट्रिंग के वांछित परिणाम नहीं दे सकती है। केस ट्रांसफॉर्मेशन को सममित होने की गारंटी नहीं है या मूल के समान लंबाई के तारों का उत्पादन करने की गारंटी नहीं है। उदाहरण के लिए कम देखें।

6

स्विफ्ट 3:

var lowercased = "hello there" 

var stringCapitalized = lowercased.capitalized 
//prints: "Hello There" 
संबंधित मुद्दे