返回

iOS开发中的字符串操作技巧大公开,助你轻松玩转字符串!

IOS

在iOS开发中,字符串操作是不可避免的,掌握一些实用的技巧可以大大提高开发效率。本文将为你揭秘iOS中常见的字符串操作技巧,助你轻松玩转字符串!

位数不足补0

有时候我们需要将一个数字字符串补齐到指定的位数,例如将"123"补齐到6位,使其变为"000123"。可以使用String(format: "%06d", number)来实现。

let number = 123
let paddedNumber = String(format: "%06d", number) // 输出:"000123"

获取汉字拼音

iOS提供了CFStringTransform函数来获取汉字的拼音。

// 导入Core Foundation框架
import CoreFoundation

// 创建要转换的汉字字符串
let chineseString = "你好"

// 创建可变字符串来存储转换后的拼音
var mutablePinyinString = NSMutableString(string: chineseString)

// 创建转换选项,指定汉字转拼音,并使用声调标记
let options = CFStringTransformOptions.stripDiacritics | CFStringTransformOptions.stripCombiningMarks

// 执行转换
CFStringTransform(mutablePinyinString, nil, kCFStringTransformMandarinLatin, options)

// 获取转换后的拼音
let pinyinString = mutablePinyinString as String // 输出:"ni3hao3"

首字母大写

可以使用capitalized属性将字符串的首字母大写。

let string = "hello world"
let capitalizedString = string.capitalized // 输出:"Hello world"

字符串开头、结尾

可以使用hasPrefix(_:)hasSuffix(_:)方法来判断字符串是否以某个子字符串开头或结尾。

let string = "Hello, world!"

// 判断是否以"Hello"开头
if string.hasPrefix("Hello") {
    print("字符串以\"Hello\"开头")
}

// 判断是否以"!"结尾
if string.hasSuffix("!") {
    print("字符串以\"!\"结尾")
}

长按复制

可以通过设置文本视图(UITextView)的dataDetectorTypes属性,在长按字符串时显示复制菜单。

textView.dataDetectorTypes = [.link, .phoneNumber, .address]

判断String是否包含某字符串

可以使用contains(_:)方法来判断字符串是否包含某个子字符串。

let string = "Hello, world!"

// 判断是否包含"world"
if string.contains("world") {
    print("字符串包含\"world\"")
}

取单个字符

可以使用subscript操作符来获取字符串中的单个字符。

let string = "Hello, world!"

// 获取第一个字符
let firstCharacter = string[string.startIndex] // 输出:"H"

// 获取最后一个字符
let lastCharacter = string[string.endIndex - 1] // 输出:"!"

字符串反转

可以使用reversed()方法来反转字符串。

let string = "Hello, world!"

// 反转字符串
let reversedString = string.reversed() // 输出:"!dlrow ,olleH"

判断字符串是否为空

可以使用isEmpty属性来判断字符串是否为空。

let string = ""

// 判断是否为空
if string.isEmpty {
    print("字符串为空")
}

在文字中添加表情

可以使用NSAttributedString来在文字中添加表情。

// 创建要添加表情的文字
let text = "你好"

// 创建表情附件
let attachment = NSTextAttachment()
attachment.image = UIImage(systemName: "smiley.face") // 这里可以替换为任意系统表情

// 创建带有附件的属性文本
let attributedText = NSMutableAttributedString(string: text)
attributedText.append(NSAttributedString(attachment: attachment))

// 设置文本视图的属性文本
textView.attributedText = attributedText

附:表情代码大全(取Unicode范围U+1F600-U+1F64F)

表情 代码 表情 代码
😀 U+1F600 😁 U+1F601
😆 U+1F602 😅 U+1F603
😇 U+1F607 😈 U+1F608
🙃 U+1F643 🙃 U+1F643
🤑 U+1F911 🤠 U+1F920