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 |