【问题标题】:Swift - Sorting url content into an arraySwift - 将 url 内容排序到数组中
【发布时间】:2015-03-08 14:27:20
【问题描述】:

所以我已经设法下载了这个网页的内容 - http://www.puzzlers.org/pub/wordlists/unixdict.txt

我正在尝试将每个单词排序成这样的数组 -

        let url = NSURL(string: "http://www.puzzlers.org/pub/wordlists/unixdict.txt")



    let task = NSURLSession.sharedSession().dataTaskWithURL(url!) {
        (data, respons, error) in

        if error == nil {

            var urlContent = NSString(data: data, encoding: NSUTF8StringEncoding) as String

            var wordArr = urlContent.componentsSeparatedByString(" ")

            println(wordArr)


        }

    }

    task.resume()


}

但问题是我没有将每个单词都放入一个数组中,因为这些单词没有用“空格”分隔。我得到的只是内容,但作为数组中的一项。

我将如何将内容分成一组单词。用换行符分隔单词?

提前谢谢你:)

【问题讨论】:

    标签: arrays string swift


    【解决方案1】:

    首选方式是enumerateLinesUsingBlockNSString

    var urlContent = NSString(data: data, encoding: NSUTF8StringEncoding)!
    var lines:[String] = []
    urlContent.enumerateLinesUsingBlock { line, _ in
        lines.append(line)
    }
    println(lines)
    

    在这种特定情况下,您可以简单地按"\n"分割:

    var urlContent = NSString(data: data, encoding: NSUTF8StringEncoding) as String
    var lines = urlContent.componentsSeparatedByString("\n")
    if lines.last == "" {
        // The last one is empty string
        lines.removeLast()
    }
    

    但一般来说,行分隔符可能不是"\n"。见this document:

    一行由这些字符中的任何一个分隔,最长可能 优先于任何较短的序列:

    • U+000D\rCR
    • U+2028(Unicode 行分隔符)
    • U+000A\nLF
    • U+2029(Unicode 段落分隔符)
    • \r\n,按此顺序(也称为CRLF

    enumerateLinesUsingBlock 可以处理所有这些。

    【讨论】:

    • 非常感谢您的回复。我本可以发誓我已经尝试过 \n 但它给了我错误但是一旦有人告诉我这样做 - 它就有效。数字lmao。感谢您的 enumerateLinesUsingBlock 事情!
    猜你喜欢
    • 2020-07-10
    • 2021-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-28
    • 1970-01-01
    相关资源
    最近更新 更多