Swift关键知识点2-字符与字符串
00 分钟
2023-9-12
  • String实现了Foundation库中NSString的一些方法,因此如果你import了Foundation,可以直接在String类型上调用这些方法。
  • 多行字符串字面值中如果要使用换行符,则用“\”来表示。
  • 多行字符串字面值的缩进
notion image
  • 特殊字符:\0(null character), \\(反斜杠), \t(tab), \n(line feed), \r(carriage return), \”(双引号), \’(单引号),\U{n} (Unicode字符)
  • Extended String Delimiters: 如果想要在字符串里包含特殊字符但又不让特殊字符起作用,可以采用#包裹字符串前后。
  • 检查String是否为空:通过isEmpty属性
  • String是Value Type:当被传给函数、方法或者赋值给一个变量或常量时,String的值都会被重新拷贝一份传给函数、方法、变量或者常量。
  • String使用append方法添加Character
  • Counting Characters:注意由于Character使用了extended grapheme clusters来实现,因此拼接或者改变字符串不一定会改变字符串中字符的数量。
  • String的count属性不一定与NSString的length属性一致。
  • 字符串切片:由于不同的字符串可能需要不同数量的unicode标量值来表示,因此String无法通过数字来切片,而要使用index方法。
  • 插入或删除字符(串):使用insert和remove方法
  • Substrings:当你通过下标或者方法如prefix(_:)从一个String中获得一部分字符串时,你就得到了一个Substring。Substring不适合做长期的存储。Substring和String的区别是Substring为了性能优化会重用部分该String使用的内存。
notion image
  • 前缀和后缀相等:使用hasPrefix和hasSuffix方法来检查开头和结尾是否包含某些字符串。
  • String的Unicode表示:String有UTF-8、UTF-16和21-bit的Unicode Scalar values三种表示
UTF-8
UTF-8
UTF-16
UTF-16
Unicode Scalar Value
Unicode Scalar Value
 

评论