Cadenas
## Objetivos de Aprendizaje
- Crear y manipular cadenas
- Usar interpolacion de cadenas
- Trabajar con Unicode
- Dominar metodos y propiedades de cadenas
## Conceptos Basicos de Cadenas
### Crear Cadenas
```swift
let vacia = ""
let vacia2 = String()
let saludo = "Hola, Mundo!"
let nombre = "Swift"
```
### Cadenas Multilinea
```swift
let poema = """
Las rosas son rojas,
Las violetas son azules,
Swift es increible,
Y tu tambien!
"""
```
### Cadenas Raw
```swift
let raw = #"Cadena con "comillas" y \escape"#
let ruta = #"C:\Usuarios\nombres"#
```
## Propiedades de Cadena
### Propiedades Basicas
```swift
let str = "Hola"
str.count // 5
str.isEmpty // false
str.first // Optional("H")
str.last // Optional("o")
```
### Propiedades Unicode
```swift
let emoji = ""
emoji.count // 1
emoji.unicodeScalars.count // 2 (usa dos valores escalares)
emoji.utf8.count // 4 bytes
emoji.utf16.count // 2 unidades de codigo
```
## Indexacion de Cadenas
### Acceso por Posicion
```swift
let saludo = "Hola"
let primero = saludo[saludo.startIndex] // "H"
let ultimo = saludo[saludo.index(before: saludo.endIndex)] // "o"
let quinto = saludo[saludo.index(saludo.startIndex, offsetBy: 4)] // "o"
```
### Acceso Seguro
```swift
let saludo = "Hola"
// Verificar limites primero
if saludo.count > 3 {
let cuarto = saludo[saludo.index(saludo.startIndex, offsetBy: 3)]
print(cuarto) // "l"
}
```
### Iterar Caracteres
```swift
for char in "Hola" {
print(char)
}
// H
// o
// l
// a
```
## Subcadenas
### Crear Subcadenas
```swift
let saludo = "Hola, Mundo!"
let inicio = saludo.index(saludo.startIndex, offsetBy: 7)
let fin = saludo.index(saludo.endIndex, offsetBy: -1)
let subcadena = saludo[inicio..
Comments
Comments powered by Giscus
To enable comments, add your Giscus embed code here.
Learn more about Giscus →