我有一个文本文件,其中包含以下文字:
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
如何删除此错误。请建议我。等待回复。感谢
答案 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'");