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(' ');
然而,当我输出标记[0]时,它是整行,而不是分割。 令牌[1]到令牌[4]是空的。
我做错了什么?
答案 0 :(得分:1)
如user2948630所述,空格字符可以是标签空间。如果您从网页或其他一些不可打印的字符中复制文本,它也可能是一个不间断的空间。要确保拆分字符适用于所有可能的空格,您可以使用正则表达式。例如,
string[] tokens = Regex.Split(line, @"\s+");
\ s元字符用于查找空白字符。
空格字符可以是:
+会发现一个或多个空格字符。
答案 1 :(得分:0)
正如其他人所指出的那样,数字之间的字符不是空格,而是像字符一样的空格。以下正则表达式将正确分割数字标记,无论行中的char类型是什么空格。
string[] tokens = Regex.Split(line, @"\s+");