所以,我一直在学习C#,我需要删除所有内容 “:”性格。
我用StreamReader读取文本文件,但后来我不能使用Split函数,然后我尝试使用int函数导入它,但后来再次我不能使用Split函数?
我想要做的是导入一个写得像;
的文本文件名:名字
NAME2:lastname2
因此它只显示名称和名称2。 我已经搜索了几天,但我似乎无法弄明白! 我不知道我做错了什么以及如何在不使用StreamReader或其他任何内容的情况下导入文本文件。
编辑:
我正在尝试将某些内容发布到类似的网站上
example.com/q=(名称不带“:”)
编辑2:
StreamReader list = new StreamReader(@"list.txt");
string reader = list.ReadToEnd();
string[] split = reader.Split(":".ToCharArray());
Console.WriteLine(split);
将输出作为;
System.String[]
答案 0 :(得分:3)
你在这里遇到了一些问题。首先,使用File.ReadLines()
代替StreamReader
,它更简单,更容易:
IEnumerable<string> lines = File.ReadLines("path/to/file");
接下来,需要迭代你的lines变量,这样你就可以到达集合的每一行:
foreach (string line in lines)
{
//TODO: write split logic here
}
然后你必须分开':'
字符的每一行:
string[] split = line.Split(":");
您的split
变量是一个字符串数组(即string[]
),这意味着如果要查看其值,则必须访问该数组的特定索引。这是您的第二个问题,如果您将split
传递给Console.WriteLine()
,它只会在您传递的对象上调用.ToString()
,并使用string[]
获胜t自动给你所有的价值,你必须自己写。
因此,如果您的line
变量为:"name:Steve"
,则split变量将包含两个索引,如下所示:
//split[0] = "name"
//split[1] = "Steve"
我制作了一个演示here的小提琴。
答案 1 :(得分:1)
我的文件大小很小,你的名字:一行中的姓氏使用:
var lines = File.ReadAllLines("filaPath");
foreach (var line in lines)
{
var array = line.Split(':');
if (array.Length > 0)
{
var name = array[0];
}
}
如果姓名:姓氏在新行中不是告诉我它是如何分开的