Nasıl Dize kullanıyorsunuz.substringWithRange? (ya da, nasıl Aralıkları Hızlı mı?)
Henüz Swift: bir dize bir dize almak için nasıl anlamaya mümkün olmamıştır
var str = “Hello, playground”
func test(str: String) -> String {
return str.substringWithRange( /* What goes here? */ )
}
test (str)
Swift bir Dizi oluşturmak için güçlü değilim. Oyun alanında otomatik tamamlama süper yararlı - bu o anlama geliyor zaten değil mi:
return str.substringWithRange(aRange: Range<String.Index>)
Yardımcı olan Swıft Standart Referans kütüphanesinde bir şey bulamadım. Burada başka bir tahmin:
return str.substringWithRange(Range(0, 1))
Ve bu:
let r:Range<String.Index> = Range<String.Index>(start: 0, end: 2)
return str.substringWithRange(r)
Gördüm diğer cevaplar (Finding index of character in Swift String) gibi görünen önermek beri String
köprü tipi NSString
"eski" yöntemleri işe yarayabilir, ama bunu daha açık nasıl - örneğin, bu çalışmıyor ya da (gibi görünmüyor geçerli sözdizimi):
let x = str.substringWithRange(NSMakeRange(0, 3))
Düşünceler?
CEVAP
SubstringWithRange yöntemi kullanabilirsiniz. Bu bir başlangıç alır ve Dize sonu.Dizin.
var str = "Hello, playground"
str.substringWithRange(Range<String.Index>(start: str.startIndex, end: str.endIndex)) //"Hello, playground"
Başlangıç değiştirmek ve dizin bitirmek için advancedBy(n) kullanın.
var str = "Hello, playground"
str.substringWithRange(Range<String.Index>(start: str.startIndex.advancedBy(2), end: str.endIndex.advancedBy(-1))) //"llo, playgroun"
Ayrıca hala NSRange ile NSString yöntemi kullanabilirsiniz, ancak bu gibi bir NSString kullandığınızdan emin olun:
let myNSString = str as NSString
myNSString.substringWithRange(NSRange(location: 0, length: 3))
JanX2 belirtildiği gibi, bu ikinci yöntem, unicode dizeleri ile güvenli değildir. not:
Nasıl bir dize başka bir dize içeriyor...
Nasıl doğru ActionScript 3 SOAP web se...
Nasıl JavaScript ile boş bir dize için...
Bir dize kontrol etmek için nasıl &quo...
Nasıl Bash dize değişkenleri bitiştirm...