当我已经有另一个分隔符时,如何使StreamReader跳过一行

本文关键字:StreamReader 一行 何使 另一个 分隔符 | 更新日期: 2023-09-27 18:21:53

Okey。因此,我正在制作一个简单的脚本,从数组中生成块,几乎就像一个波浪形的2d游戏。但它并没有像我希望的那样预先成形,我知道为什么,但我还没有找到任何解决方案。如果可以的话,请帮我:)

因此,在这里,我用一个空格作为分隔符来运行StreamReader:

    StreamReader reader = new StreamReader (@"blablabla'path'levelOneMap.txt");
    string s = reader.ReadToEnd();
    while(s != null)
    {
        char[] delimiter = {' '};
        // Level holder is a string array, wish hold x, s or h.
        levelHolder = s.Split(delimiter, System.StringSplitOptions.RemoveEmptyEntries);
        s = reader.ReadLine();
    }

他正在阅读的文件看起来像这样:

x x

x s x

x h x

等等,如果x是,它会产生一个区块。s是起始块,h只是地上的一个洞。

我做了一堆debug.logs,把x、s和h改成了1 2 3 4……看看发生了什么。原来第一个12可以,但levelHolder[2]同时包含3和4。如何使此脚本理解它应该同时跳过"answers"''n"?

当我已经有另一个分隔符时,如何使StreamReader跳过一行

一旦调用ReadToEnd(),您就可以将整个文件放在一个变量中,并且流已经到达文件末尾。之后调用ReadLine()不会有任何作用。这样你就可以去掉循环了。

然后添加您想要的任何分隔符,可能需要所有ASCII空白字符({ ' ', ''t', ''r', ''n', ''v' })。

如果您希望将所有块放置在一个levelHolder数组中。如果希望每一行都在自己的数组中,则保留循环,并将初始ReadToEnd()更改为另一个ReadLine()