2016-04-14 49 views
0

我有这段代码逐行读取我的文件行:如何检查文件中的下一行是否为空?

data = try String(contentsOfFile: localFilePath as String, 
           encoding: NSASCIIStringEncoding) 

let myStrings = data.componentsSeparatedByCharactersInSet(NSCharacterSet.newlineCharacterSet()) 


array = myStrings[0].characters.split(){$0 == ","}.flatMap{ 
     (Int(String.init($0).stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet())))} 

在这里,我读文件的第一行,并在该行转换成数字[Int]

现在我想检查文件的下一行是否有任何数字/字母,但是当我尝试执行此操作时:myStrings[1]它正确地给我Index out of range,因为下一行是空的。

我的问题是,有没有办法检查文件中的下一行是否有任何数据,没有得到这个错误?

回答

0

如果你只做myStrings [1],它已经显示你“索引超出范围”,那么它可能是没有字符串那里(甚至没有空)。你应该检查你试图访问的字符串索引(本例中为1)是否超出myStrings数组的范围。另一方面,如果你以后真的得到了错误,并且有一个可能为空的字符串,你可以使用isEmpty()来检查这个错误。

0

使用myStrings阵列上的count属性检查您首先拥有的行数。这会告诉你你的数组包含了多少项。