সবে পিছনে অ্যাক্সেস করা
সম্পত্তি এবং বিশ্বব্যাপী ফাংশনটির সাথে substringToIndexসম্মিলিতভাবে ব্যবহার করা সবচেয়ে ভাল উপায় wayendIndexadvance
var string1 = "www.stackoverflow.com"
var index1 = advance(string1.endIndex, -4)
var substring1 = string1.substringToIndex(index1)
পিছন থেকে শুরু করে একটি স্ট্রিং খুঁজছেন
ব্যবহার করুন rangeOfStringএবং সেট optionsকরুন.BackwardsSearch
var string2 = "www.stackoverflow.com"
var index2 = string2.rangeOfString(".", options: .BackwardsSearch)?.startIndex
var substring2 = string2.substringToIndex(index2!)
কোনও এক্সটেনশান নেই, খাঁটি ইডিয়োম্যাটিক সুইফট
সুইফট ২.০
advanceএখন একটি অংশ Indexএবং বলা হয় advancedBy। আপনি এটি পছন্দ করুন:
var string1 = "www.stackoverflow.com"
var index1 = string1.endIndex.advancedBy(-4)
var substring1 = string1.substringToIndex(index1)
সুইফট 3.0
আপনি কল করতে পারবেন না advancedByএকটি Stringকারণ এটি পরিবর্তনশীল আকার উপাদানগুলি নেই। আপনি ব্যবহার করতে হবে index(_, offsetBy:)।
var string1 = "www.stackoverflow.com"
var index1 = string1.index(string1.endIndex, offsetBy: -4)
var substring1 = string1.substring(to: index1)
অনেক কিছুর নাম বদলে দেওয়া হয়েছে। মামলাগুলি উট কেসে লিখিত আছে, startIndexহয়ে গেছে lowerBound।
var string2 = "www.stackoverflow.com"
var index2 = string2.range(of: ".", options: .backwards)?.lowerBound
var substring2 = string2.substring(to: index2!)
এছাড়াও, আমি জোর করে মোড়কানোর পরামর্শ দেব না index2। আপনি alচ্ছিক বাঁধাই বা ব্যবহার করতে পারেন map। ব্যক্তিগতভাবে, আমি ব্যবহার করতে পছন্দ করি map:
var substring3 = index2.map(string2.substring(to:))
সুইফট 4
সুইফট 3 সংস্করণটি এখনও বৈধ তবে এখন আপনি সূচী রেঞ্জ সহ সাবস্ক্রিপ্টগুলি ব্যবহার করতে পারেন:
let string1 = "www.stackoverflow.com"
let index1 = string1.index(string1.endIndex, offsetBy: -4)
let substring1 = string1[..<index1]
দ্বিতীয় পদ্ধতিটি অপরিবর্তিত রয়েছে:
let string2 = "www.stackoverflow.com"
let index2 = string2.range(of: ".", options: .backwards)?.lowerBound
let substring3 = index2.map(string2.substring(to:))