0
public void LoadWorldMap()
{
    string path = "..\\Bin\\Assets\\WorldMap\\WorldMap.txt";
    //Open the file and read it. 
    string[] fileText = File.ReadAllLines(path);

    for (int index = 0; index < 320; index++)
    {
       string line = fileText[index];
       string[] tokens = line.Split(' ');

       System.Console.WriteLine(tokens[0]);
    }
}

该文件如下所示:

0   0   0   0   0

0   1   0   0   0

0   2   0   0   0

0   3   0   0   0

0   4   0   0   0

0   5   0   0   0

没有逗号,这就是它的原因

line.Split(' ');

但是,当我输出 tokens[0] 时,它是整行,而不是拆分。令牌[1] 到令牌[4] 为空。

我究竟做错了什么?

4

2 回答 2

1

正如 user2948630 提到的,空格字符可能是一个选项卡式空格。如果您从网页复制文本或其他一些不可打印的字符,它也可能是一个不间断的空格。为确保拆分字符适用于所有可能的空格,您可以使用正则表达式。例如,

string[] tokens = Regex.Split(line, @"\s+");

\s 元字符用于查找空白字符。

空白字符可以是:

  • 空格字符
  • 制表符
  • 回车符
  • 换行符
  • 垂直制表符
  • 换页符

+ 将找到一个或多个空白字符。

于 2013-11-03T13:52:21.390 回答
0

正如其他人指出的那样,数字之间的字符不是空格,而是像字符一样的空格。无论行中的空间类型 char 是什么,以下正则表达式都将正确拆分数字标记。

string[] tokens = Regex.Split(line, @"\s+");
于 2013-11-03T13:40:41.810 回答