"123"
gibi bir dizem varsa, onu ["", "1", "2", "3", ""]
gibi görünen bir diziye nasıl bölebilirim? ToCharArray()
kullanırsam, ilk Emoji 2 karaktere, ikincisi ise 7 karaktere ayrılır.Bir Unicode dizesini C# içindeki birden çok Unicode karakterine nasıl bölebilirim?
Güncelleme
çözüm şimdi şuna benzer:
public static List<string> GetCharacters(string text)
{
char[] ca = text.ToCharArray();
List<string> characters = new List<string>();
for (int i = 0; i < ca.Length; i++)
{
char c = ca[i];
if (c > 65000) continue;
if (char.IsHighSurrogate(c))
{
i++;
characters.Add(new string(new[] { c, ca[i] }));
}
else
characters.Add(new string(new[] { c }));
}
return characters;
}
yani yorumlarda belirtildiği gibi, bu aile emoji'ler için çalışmıyor unutmayınız. Sadece 2 karakter veya daha az olan emojiler için çalışır. Örneğin çıktısı:
["", "1", "2", "3", "", "", "", ""]
' + + + = ' komik, bilmiyordu – fubo
Bu nasıl oldu? Emoji metin oluşturma motoru içindir. Emoji içeren metin işlemek, kabaca Çince metin işleme sevinci ile eşdeğerdir. Veya Zalgo, gerçek bir meydan okuma istiyorsanız :) Vekilleri tanıma roket bilimi değildir, Char.IsLowSurrogate() kullanın. –