Swift - Cuerdas

Las cadenas en Swift 4 son una colección ordenada de caracteres, como "¡Hola, mundo!" y están representados por el tipo de datos Swift 4String, que a su vez representa una colección de valores de Character tipo.

Crear una cadena

Puede crear una cadena utilizando un literal de cadena o creando una instancia de una clase de cadena de la siguiente manera:

// String creation using String literal
var stringA = "Hello, Swift 4!"
print( stringA )

// String creation using String instance
var stringB = String("Hello, Swift 4!")
print( stringB )

//Multiple line string

let stringC = """
Hey this is a
example of multiple Line
string by tutorialsPoint 

"""
print(stringC)

Cuando el código anterior se compila y ejecuta, produce el siguiente resultado

Hello, Swift 4!
Hello, Swift 4!
Hey this is a
example of multiple Line
string by tutorialsPoint

Cuerda vacía

Puede crear una cadena vacía utilizando un literal de cadena vacía o creando una instancia de la clase String como se muestra a continuación. También puede verificar si una cadena está vacía o no usando la propiedad booleanaisEmpty.

// Empty string creation using String literal
var stringA = ""

if stringA.isEmpty {
   print( "stringA is empty" )
} else {
   print( "stringA is not empty" )
}

// Empty string creation using String instance
let stringB = String()

if stringB.isEmpty {
   print( "stringB is empty" )
} else {
   print( "stringB is not empty" )
}

Cuando se compila y ejecuta el código anterior, produce el siguiente resultado:

stringA is empty
stringB is empty

Constantes de cadena

Puede especificar si su Cadena puede ser modificada (o mutada) asignándola a una variable, o será constante asignándola a una constante usando let palabra clave como se muestra a continuación -

// stringA can be modified
var stringA = "Hello, Swift 4!"
stringA + = "--Readers--"
print( stringA )

// stringB can not be modified
let stringB = String("Hello, Swift 4!")
stringB + = "--Readers--"
print( stringB )

Cuando se compila y ejecuta el código anterior, produce el siguiente resultado:

Playground execution failed: error: <EXPR>:10:1: error: 'String' is not
convertible to '@lvalue UInt8'
stringB + = "--Readers--"

Interpolación de cadenas

La interpolación de cadenas es una forma de construir un nuevo valor de cadena a partir de una combinación de constantes, variables, literales y expresiones al incluir sus valores dentro de una cadena literal.

Cada elemento (variable o constante) que inserta en el literal de cadena está envuelto en un par de paréntesis, precedido por una barra invertida. Aquí hay un ejemplo simple:

var varA = 20
let constA = 100
var varC:Float = 20.0

var stringA = "\(varA) times \(constA) is equal to \(varC * 100)"
print( stringA )

Cuando se compila y ejecuta el código anterior, produce el siguiente resultado:

20 times 100 is equal to 2000.0

Concatenación de cadenas

Puede utilizar el operador + para concatenar dos cadenas o una cadena y un carácter, o dos caracteres. Aquí hay un ejemplo simple:

let constA = "Hello,"
let constB = "World!"

var stringA = constA + constB
print( stringA )

Cuando se compila y ejecuta el código anterior, produce el siguiente resultado:

Hello,World!

Longitud de la cuerda

Swift 4 cuerdas no tienen lengthpropiedad, pero puede usar la función global count () para contar el número de caracteres en una cadena. Aquí hay un ejemplo simple:

var varA = "Hello, Swift 4!"

print( "\(varA), length is \((varA.count))" )

Cuando se compila y ejecuta el código anterior, produce el siguiente resultado:

Hello, Swift 4!, length is 15

Comparación de cadenas

Puede utilizar el operador == para comparar dos cadenas de variables o constantes. Aquí hay un ejemplo simple:

var varA = "Hello, Swift 4!"
var varB = "Hello, World!"

if varA == varB {
   print( "\(varA) and \(varB) are equal" )
} else {
   print( "\(varA) and \(varB) are not equal" )
}

Cuando se compila y ejecuta el código anterior, produce el siguiente resultado:

Hello, Swift 4! and Hello, World! are not equal

Iteración de cadenas

Las cadenas son nuevamente una colección de valores en swift 4, por lo que podemos iterar sobre cadenas usando bucles. -

for chars in "ThisString" {
   print(chars, terminator: " ")
}

Cuando se compila y ejecuta el código anterior, produce el siguiente resultado:

T h i s S t r i n g

Cadenas Unicode

Puede acceder a una representación UTF-8 y UTF-16 de una cadena iterando sobre sus propiedades utf8 y utf16 como se demuestra en el siguiente ejemplo:

var unicodeString = "Dog???"

print("UTF-8 Codes: ")
for code in unicodeString.utf8 {
   print("\(code) ")
}

print("\n")

print("UTF-16 Codes: ")
for code in unicodeString.utf16 {
   print("\(code) ")
}

Cuando se compila y ejecuta el código anterior, produce el siguiente resultado:

UTF-8 Codes: 
68 
111 
103 
63 
63 
63 


UTF-16 Codes: 
68 
111 
103 
63 
63 
63

Funciones y operadores de cadenas

Swift 4 admite una amplia gama de métodos y operadores relacionados con Strings:

No Señor Funciones / Operadores y propósito
1

isEmpty

Un valor booleano que determina si una cadena está vacía o no.

2

hasPrefix(prefix: String)

Función para comprobar si una determinada cadena de parámetros existe como prefijo de la cadena o no.

3

hasSuffix(suffix: String)

Función para comprobar si una determinada cadena de parámetros existe como sufijo de la cadena o no.

4

toInt()

Función para convertir un valor de cadena numérico en entero.

5

count()

Función global para contar el número de caracteres en una cadena.

6

utf8

Propiedad para devolver una representación UTF-8 de una cadena.

7

utf16

Propiedad para devolver una representación UTF-16 de una cadena.

8

unicodeScalars

Propiedad para devolver una representación escalar Unicode de una cadena.

9

+

Operador para concatenar dos cadenas, o una cadena y un carácter, o dos caracteres.

10

+=

Operador para agregar una cadena o carácter a una cadena existente.

11

==

Operador para determinar la igualdad de dos cadenas.

12

<

Operador para realizar una comparación lexicográfica para determinar si una cadena se evalúa como menor que otra.

13

startIndex

Para obtener el valor en el índice inicial de la cadena.

14

endIndex

Para obtener el valor en el índice final de la cadena.

15

Indices

Para acceder a los índices uno a uno. es decir, todos los caracteres de la cadena uno por uno.

dieciséis

insert("Value", at: position)

Para insertar un valor en una posición.

17

remove(at: position)

removeSubrange(range)

para eliminar un valor en una posición o para eliminar un rango de valores de la cadena.

18

reversed()

devuelve el reverso de una cadena