Desarrollo de iOS: cadenas y caracteres rápidos

1. Definición de cadena

let someString = "some string value"

2. Definición de cadena de varias líneas (""")

let quotation = """
有一个人前来买瓜。
"这瓜甜吗?"他问。
"""

 No hay nueva línea después del """ anterior y del """ siguiente

//前一个"""前和后一个"""后无换行
let someString = "有个人。"
let someString = """
有个人。
"""
//此两个语句效果相同

 Quiere lograr una nueva línea al escribir el código pero no después de la operación real: \

//在代码编写时换行而在实际运行后不换行
let someString = """
abcdefg\
hijklmn
"""
//实际输出:abcdefghijklmn

3. Caracteres especiales en cadenas.

(1) carácter de escape

\0 carácter nulo
\\ barra invertida
\ t pestaña horizontal
\norte salto de línea
\r retorno de carro
\" Doble comillas
\' apóstrofe

Para utilizar (""") en """, debes escribir al menos un carácter de escape \. Por ejemplo \""" o \"\"\"

(2) escalar Unicode

\u{24} dos números hexadecimales
\u{2665} número hexadecimal de cuatro dígitos
\u{nnn...} 1~8 números hexadecimales

4. Delimitador de caracteres extendido

Cuando hay \ pero no quieres escapar:

#"Line1 \nLine2"#

5. Inicialice una cadena vacía

var emptyString = ""     //或
var emptyString = String()

//判断字符串是否为空:
if emptyString.isEmpty {
    print("Empty!")
}

6. Mutabilidad de cadenas

var a = "a"
a += "b"   //a = "ab"
let c = "c"
c += "d"   //报错,常量字符串不可修改

7. Usando personajes

//通过for-in输出字符
for c in "Dog!"{ print(c) } /* 输出: D o g ! */
//通过指定类型创建字符
let end: Character = "!"
//通过定义字符数组创建字符数组,再通过String(字符数组)方法创建字符串
let cat: [Character] = ["c", "a", "t"] let catString = String(cat) print(cat) //输出cat

8. Concatenar cadenas y caracteres

//1
let a = "a"
let b = "b"
var c = a + b
//2
var a = "a"
a += b
//3
let a: Character = "a"
b.append(a)    //ba

9. Interpolación de cadenas

let a = 3
let message = "\(a) times 2.5 is \(Double(a) * 2,5)"   //3 times 2.5 is 7.5

10. Índice de cadenas

let greeting = "Guten Tag!"
greeting[greeting.startIndex]    //G
greeting[greeting.index( before: greeting.endIndex)]    //!
greeting[greeting.index( after: greeting.startIndex)]    //u
greeting[greeting.index( greeting.startIndex, offsetBy: 7)]    //a

startIndex es el primer carácter; endIndex es el carácter después del último carácter.

El atributo de índices creará un carácter único que contiene todos los accesos al rango de índice.

for index in getting.indices{
    print("\(greeting[index])", terminator:" ")
}    //G u t e n  T a g !

11. Inserción y eliminación

//插入
var h = "Hello" h.insert("!", at: h.endIndex) //Hello!
//删除
//remove
h.remove( at: h.index(before: h.endIndex) )    //Hello
//removeSubrange
let range = h.startIndex ..< h.endIndex
h.removeSubrange(range)   //参数为一个字符串范围
//运行结果:啥也没有

12. Subcadena

let g = "Hello,World!"
let index = g.firstIndex(of: ",") ?? g.endIndex
let beginning = g[..<index]     //beginning为subString类型
let newString = String(beginning)   //将subString类型转换为String类型
//短时间使用此子字符串用subString,长期使用需转换为String类型
print(newString)    //Hello

13. Comparar cadenas

 (1) igualdad de cadena/carácter

== !=

Igualdad estándar: tanto el significado lingüístico como la apariencia son iguales.

un == un reflexividad
a == b ⇒ b == a simetría
a == b && b == c ⇒ a == c transitividad

(2) igualdad de prefijo/sufijo

//都返回一个布尔值
scene.hasPrefix("Action 1")    //有相同前缀"Action 1"
scene.hasSuffix("。")     //有相同后缀"。"

14.representación utf8, representación utf16

dogString.utf8    //68 111 103 226
dogString.utf16    //68 111 103 8252

15. Representación escalar Unicode

Unicode: una representación única de 21 dígitos de un carácter.

dogString.unicodeScalars     //D o g !

Supongo que te gusta

Origin blog.csdn.net/LYly_B/article/details/132465365
Recomendado
Clasificación