我正在尝试格式化用户输入的字符串,然后将该字符串的一部分放置在三个单独的变量中。
//This is the text the user enters
rgbInputTextField.text == "253, 254, 255" //(Or variations like "53 54 55" or "3,4,5")
//I'd like to place that string in three variables such that:
R == 253
G == 254
G == 255
我是完全错误的做法吗?目的是注册用户的RGB输入字符串,并将其转换为十六进制值。
一旦有了R,G和B变量,我便可以转换为十六进制,但无法弄清楚如何将rgbInputTextField字符串放入这三个单独的变量中。我发现了很多可以将十六进制字符串转换为UIColor的UIColor扩展,但是没有将rgb字符串(带有变体)转换为hex / UIColor的任何扩展。
感谢任何帮助!
找到一种解析字符串的方法,并在每个逗号之后存储R,G和B的变量。为此,您可以使用NSRegularExpression创建一个正则表达式。
https://developer.apple.com/documentation/foundation/nsregularexpression
如果我是你,我将只创建三个单独的textField并从输入中读取值。
您可以使用以下方法提取字符串的数字:
let string = "122, 255, 2"
var array = String(stringLiteral: string).components(separatedBy: CharacterSet.decimalDigits.inverted)
array = array.filter { $0 != "" }
结果:["122", "255", "2"]