triste sorprendido significado significa que este enojado emoticon emojis copiar babeando ios swift string unicode emoji

ios - sorprendido - que significa este emoji 🌚



ΒΏCΓ³mo saber si dos emojis se mostrarΓ‘n como un emoji? (1)

El emoji πŸ‘πŸΌ consta de 2 unicodeScalars πŸ‘ U + 1F44D, 🏼 U + 1F3FC.

¿Cómo se puede identificar como 1 emoji ''mostrado'' como se mostrará como tal en iOS?


Actualización para Swift 4 (Xcode 9)

A partir de Swift 4, una "secuencia de Emoji" se trata como un solo grupo de grafemas (de acuerdo con el estándar Unicode 9):

let s = "aπŸ‘πŸΌbπŸ‘¨‍❀️‍πŸ’‹‍πŸ‘¨" print(s.count) // 4

entonces las otras soluciones ya no son necesarias.

(Antigua respuesta para Swift 3 y anteriores :)

Una posible opción es enumerar y contar las "secuencias de caracteres compuestas" en la cadena:

let s = "aπŸ‘πŸΌbπŸ‘¨‍❀️‍πŸ’‹‍πŸ‘¨" var count = 0 s.enumerateSubstringsInRange(s.startIndex..<s.endIndex, options: .ByComposedCharacterSequences) { (char, _, _, _) in if let char = char { count += 1 } } print(count) // 4

Otra opción es encontrar el rango de las secuencias de caracteres compuestas en un índice dado:

let s = "πŸ‘¨‍❀️‍πŸ’‹‍πŸ‘¨" if s.rangeOfComposedCharacterSequenceAtIndex(s.startIndex) == s.characters.indices { print("This is a single composed character") }

Como métodos de extensión de String :

// Swift 2.2: extension String { var composedCharacterCount: Int { var count = 0 enumerateSubstringsInRange(characters.indices, options: .ByComposedCharacterSequences) { (_, _, _, _) in count += 1 } return count } var isSingleComposedCharacter: Bool { return rangeOfComposedCharacterSequenceAtIndex(startIndex) == characters.indices } } // Swift 3: extension String { var composedCharacterCount: Int { var count = 0 enumerateSubstrings(in: startIndex..<endIndex, options: .byComposedCharacterSequences) { (_, _, _, _) in count += 1 } return count } var isSingleComposedCharacter: Bool { return rangeOfComposedCharacterSequence(at: startIndex) == startIndex..<endIndex } }

Ejemplos:

"πŸ‘πŸΌ".composedCharacterCount // 1 "πŸ‘πŸΌ".characters.count // 2 "πŸ‘¨‍❀️‍πŸ’‹‍πŸ‘¨".composedCharacterCount // 1 "πŸ‘¨‍❀️‍πŸ’‹‍πŸ‘¨".characters.count // 4 "πŸ‡©πŸ‡ͺπŸ‡¨πŸ‡¦".composedCharacterCount // 2 "πŸ‡©πŸ‡ͺπŸ‡¨πŸ‡¦".characters.count // 1

Como puede ver, la cantidad de caracteres Swift (grupos de grafemas extendidos) puede ser mayor o menor que la cantidad de secuencias de caracteres compuestas.