将文本从文本文件中获取到数组中

时间:2014-01-17 10:31:23

标签: c#

我有一个文本文件,其中包含以下文字:

Contact Name        |       Contact Number

Muhammad Hassan Ali Khan|       123456
Danish Abdul Ghani      |       165484
Adeel Siddiqui          |       865697
Muhammad Faisal Bilal   |       569745
Arslan                  |       145236

我希望显示它,因为它在gridview中,我使用以下代码:检查我是否正确地从文件中获取文本。

protected void Page_Load(object sender, EventArgs e)
        {
            string line = "";
            StreamReader reader = new StreamReader("c:\\Contacts.txt");
            while ((line = reader.ReadLine()) != null)
            {
                string[] arr = line.Split('\t\t|\t\t');
            }
        }

但是在这一行“string [] arr = line.Split('\ t \ t | \ t \ t');”发生错误:

Error: Too many characters in character literal

如何删除此错误。请建议我。等待回复。感谢

4 个答案:

答案 0 :(得分:3)

你可以这样做

 string line = "";
 StreamReader reader = new StreamReader("c:\\Contacts.txt");
 while ((line = reader.ReadLine()) != null)
 {
      string[] arr = line.Split('|');
      arr = arr.Select(x => x.Trim()).ToArray();
 }

答案 1 :(得分:1)

试试这个;

string[] arr = line.Split(new string[] { "\t\t|\t\t" }, StringSplitOptions.RemoveEmptyEntries);

编辑:'封装了一个字符,"用于字符串。

答案 2 :(得分:1)

您必须将一组字符传递给String.Split()方法。数组中的字符将用作拆分的分隔符。

由于方法Split()在其签名中有一个关键字 params ,您可以省略直接创建数组并只传递用逗号分隔的字符。

示例:

string[] arr = line.Split('|');
string[] another = line.Split('|','-',':','!');

值得注意的是,Split()的一个重载版本接受StringSplitOptions枚举。

我建议您将它与StringSplitOption.RemoveEmptyEntries选项一起使用。这将阻止在结果数组中出现空元素。但是,此版本的方法没有 params 关键字,因此您必须创建数组。

var arr = mystring.Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries);

答案 3 :(得分:0)

如果您需要拆分多个字符,请使用Regex

   line.Split(value, "'\t\t|\t\t'");