Sto cercando di capire come verificare se una stringa contiene un'emoji specfica. Ad esempio, cerca nella due emoji seguente:Come confrontare e convertire i caratteri emoji in C#
Ciclista: http://unicode.org/emoji/charts/full-emoji-list.html#1f6b4
bandiera degli Stati Uniti: http://unicode.org/emoji/charts/full-emoji-list.html#1f1fa_1f1f8
Ciclista è U+1F6B4
, e la bandiera degli Stati Uniti è U+1F1FA U+1F1F8
.
Tuttavia, l'emoji per controllare sono forniti a me in una serie come questa, con il solo valore numerico nelle stringhe:
var checkFor = new string[] {"1F6B4","1F1FA-1F1F8"};
Come posso convertire quei valori di matrice in caratteri unicode effettivi e controllare vedi se una stringa li contiene?
Posso ottenere qualcosa di lavoro per il ciclista, ma per la bandiera americana sono perplesso.
Per il ciclista, sto facendo la seguente:
const string comparisonStr = "..."; //some string containing text and emoji
var hexVal = Convert.ToInt32(checkFor[0], 16);
var strVal = Char.ConvertFromUtf32(hexVal);
//now I can successfully do the following check
var exists = comparisonStr.Contains(strVal);
Ma questo non funzionerà con la bandiera degli Stati Uniti a causa dei punti di codice multiple.
Perfetto, grazie. I personaggi che combinavano mi stavano facendo incazzare per qualche motivo. – tbraun