Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 遍历字符串并测试字符的差异_Swift_String - Fatal编程技术网

Swift 遍历字符串并测试字符的差异

Swift 遍历字符串并测试字符的差异,swift,string,Swift,String,我试图遍历一系列类似于此的字符 //Example.txt 0 X X X 0 0 X 0 X 0 0 0 X 0 0 0 X 0 X 0 0 X X X 0 我想知道X和0之间的区别。我当前使用的代码导致无限循环运行,然后我的应用程序永远无法完成构建 let path = Bundle.main.path(forResource: "Example.txt", ofType: nil) do { let fileContents = try String(contentsOfFile

我试图遍历一系列类似于此的字符

//Example.txt
0 X X X 0
0 X 0 X 0
0 0 X 0 0
0 X 0 X 0
0 X X X 0
我想知道X和0之间的区别。我当前使用的代码导致无限循环运行,然后我的应用程序永远无法完成构建

let path = Bundle.main.path(forResource: "Example.txt", ofType: nil)
do {
    let fileContents = try String(contentsOfFile:path!, encoding: String.Encoding.utf8)
    let lines = fileContents.components(separatedBy: "\n")

     for row in 0..<lines.count {
     let items = lines[row].components(separatedBy: " ")

         for column in 0..<items.count {
                    print(column,row)
             }
         }
     } catch {
         print("Error loading map")
     }
let path=Bundle.main.path(forResource:“Example.txt”,类型:nil)
做{
让fileContents=try String(contentsOfFile:path!,encoding:String.encoding.utf8)
let line=fileContents.components(以“\n”分隔)
对于0..中的行,您没有在内部for中使用“column”变量。事实上,在每次迭代中,您总是将“items”数组(
items[1]
)的第二个元素与“0”进行比较。如果items数组的元素少于2个,则会导致越界错误

也许您应该如下迭代(我建议使用“for in”循环):


虽然我不理解你的“if else”,但如果文件只能包含“0”或“X”,而你只是将其可视化,那么你最好只
print(item)

如果你的应用程序没有生成,那么它就无法“完美地迭代.txt文档”或“使无限循环运行它开始生成,但由于它无限循环,它实际上从未完成生成。请编辑我的问题以澄清您应该检查每一列而不是每一项。
let lines=fileContents.components(separatedBy:.newlines)中的行{let columns=line.components(separatedBy:”)对于列中的列{print(column)}
oh-duh!绝对不会猜到要测试项中的每个项。谢谢,很多工作完全符合我的需要。:)
for row in 0..<lines.count {
let items = lines[row].components(separatedBy: " ")

    for column in 0..<items.count {

        if items[1] == "0" {
            print("0")
        } else {
            print("X")
        }
    }
}
for line in lines {
    let items = line.components(separatedBy: " ")
    for item in items {
        if item == "0" {
            print("0")
        } else {
            print("X")
        }
    }
}