C# 将文本文件中的文本获取到数组中

C# 将文本文件中的文本获取到数组中,c#,C#,我有一个文本文件,包含以下文本: Contact Name | Contact Number Muhammad Hassan Ali Khan| 123456 Danish Abdul Ghani | 165484 Adeel Siddiqui | 865697 Muhammad Faisal Bilal | 569745 Arslan | 1

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

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
如何删除此错误。请推荐我。等待答复。谢谢

试试这个

string[] arr = line.Split(new string[] { "\t\t|\t\t" }, StringSplitOptions.RemoveEmptyEntries);
编辑:
封装字符,
用于字符串。

试试这个

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

编辑:
封装字符,
用于字符串。

如果需要拆分多个字符,请使用
正则表达式:

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

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

   line.Split(value, "'\t\t|\t\t'");
你可以这样做

 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();
 }
你可以这样做

 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();
 }

必须向方法传递一个字符数组。数组中的字符将用作拆分的分隔符

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

例如:

string[] arr = line.Split('|');
string[] another = line.Split('|','-',':','!');
值得注意的是,Split()的一个重载版本接受StringSplitOptions枚举

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

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

必须向方法传递一个字符数组。数组中的字符将用作拆分的分隔符

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

例如:

string[] arr = line.Split('|');
string[] another = line.Split('|','-',':','!');
值得注意的是,Split()的一个重载版本接受StringSplitOptions枚举

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

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

Split(“”)中的撇号表示一种类型的
Char`,它只能容纳一个字符。
Split(“”)中的撇号表示一种类型的
Char`,ojlovecd:您的代码行正在运行,但它只获取第一行联系人姓名|联系人号码,我想获取上面所有的文本,ojlovecd:您的代码行正在运行,但它只获取第一行联系人姓名|联系人号码,我想获取上面所有的文本,这是唯一一个实际工作正常的答案,因为根据提供的源数据,\t\t\t的原始解决方案无论如何都不正确。这是唯一一个实际工作正常的答案,因为根据提供的源数据\t\t\t的原始解决方案无论如何都不正确。因为String.Split()方法实际上有一个带有关键字“params”的签名,例如String.Split(params char[]分隔符)。因此,您可以省略数组的创建,甚至像mystring.Split(“-”、“:”、“|”)一样调用它;因为String.Split()方法实际上有一个带有关键字“params”的签名,例如String.Split(params char[]分隔符)。因此,您可以省略数组的创建,甚至像mystring.Split(“-”、“:”、“|”)一样调用它;