如何使用逗号和行分隔符对字符串进行标记

ste*_*eaw 5 string stringtokenizer ios swift

我正在像在Java中那样在Swift中创建一个简单的String Tokenizer ......但是它真的不适合我.

我的数据源中每行的结尾用"^"分隔,数据用逗号分隔.

例如:"string 1,string 2,string 3,^,string 1,string 2,string 3,^"

这就是我在Java中所做的...(我只希望每行数据中的前两个字符串)

        String delimeter = "^";
        StringTokenizer tokenizedString = new StringTokenizer(responseString,delimeter);

        String [] stringArray = new String [tokenizedString.countTokens()];
        StringTokenizer tokenizedAgain;
        String str1;
        String str2;
        String token;
        for(int i =0; i< stringArray.length; i ++)
        {

            token = tokenizedString.nextToken();
            tokenizedAgain = new StringTokenizer(token, ",");
            tokenizedAgain.nextToken();
            str1 = tokenizedAgain.nextToken();
            str2 = tokenizedAgain.nextToken();
        }
Run Code Online (Sandbox Code Playgroud)

如果有人能指出我正确的方向,那将非常有帮助.

我看过这个:Swift:将一个String拆分成一个数组

这个:http://www.swift-studies.com/blog/2014/6/23/a-swift-tokenizer

但是我无法在Swift中找到关于String Tokenizing的其他资源.谢谢!

Pri*_*ngo 6

这扩展了Syed的componentsSeperatedByString答案,但是使用Swift的映射来创建请求的Nx2矩阵.

let tokenizedString = "string 1, string 2, string 3, ^, string a, string b, string c, ^"
let lines = tokenizedString.componentsSeparatedByString("^, ")
let tokens = lines.map {
    (var line) -> [String] in
    let token = line.componentsSeparatedByString(", ")
    return [token[0], token[1]]
}
println(tokens)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述