Nasıl belirli bir uzunluğa bir NSString kesecek miyim?
Aradım, ama şaşırtıcı bir cevap bulamadım.
Kısaltmak istiyorum uzun NSString
var. Uzunluğu en fazla 20 karakter etrafında olmak istiyorum. En iyi çözüm substringWithRange
kullanmak için olduğunu okumuştum. Bu en iyi yolu bir dize kesecek mi?
NSRange stringRange = {0,20};
NSString *myString = @"This is a string, it's a very long string, it's a very long string indeed";
NSString *shortString = [myString substringWithRange:stringRange];
(Dize çöker en fazla uzunluktan daha kısa ise) biraz hassas gibi görünüyor. Ayrıca eğer Unicode güvenli mi, emin değilim. Daha iyi bir yol var mı? Bu herkes için güzel bir kategori var mı?
CEVAP
Aslında "güvenli birçok karakter önerilen cevaplar düşünmüyoruz. unicode birleştirmek" olarak ölmüştü, Unicode olma kısmı
Eğer istiyorsanız örneğin, ben. Yazarak bunu yapmanın bir yolu, "e"(0x65) aksan birleştirerek" "(0x301). Yazarsanız şimdi, "" bu ve kesilme 4 karakter gibi, alacaksın "". cafe kafe Bu, bazı yerlerde sorunlara neden olabilir.
Eğer bu senin umrunda bile, diğer cevaplar çok iyi çalışıyor. Yoksa bunu yap:
// define the range you're interested in
NSRange stringRange = {0, MIN([myString length], 20)};
// adjust the range to include dependent chars
stringRange = [myString rangeOfComposedCharacterSequencesForRange:stringRange];
// Now you can create the short string
NSString *shortString = [myString substringWithRange:stringRange];
Bu şekilde dizi ilk dizi uzunluğundan daha uzun olabilir unutmayın. Kafe yukarıdaki örnekte, aralığı hala 4 olsa bile 5, uzunluğu genişleyecektir"". semboller Eğer kesinlikle bir uzunluk daha az gösterilen daha ne olması gerekiyorsa, bunun için kontrol etmeniz gerekir.
Nasıl SQL Server belirli bir tabloya b...
Nasıl belirli bir tablo için MySQL mot...
Nasıl bir github belirli bir taahhüt d...
Nasıl SQL Server datetime kesecek miyi...
Nasıl olursa NSString belirli bir kara...