重新格式化字符串并将其部分放置在单独的变量中

Reformatting a string and placing parts of it in separate variables

我正在尝试格式化用户输入的字符串,然后想将该字符串的一部分放在三个单独的变量中。

//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

如果我是你,我只会创建三个单独的文本字段并从输入中读取值。

您可以使用以下方法提取字符串的数字:

let string = "122, 255, 2"
var array = String(stringLiteral: string).components(separatedBy: CharacterSet.decimalDigits.inverted)
array = array.filter { [=10=] != "" }

结果:["122", "255", "2"]