所以,我一直在学习C#,我需要删除“:”字符后的所有内容。
我用StreamReader读取文本文件,但后来我不能使用Split函数,然后我尝试使用int函数导入它,但是我再次使用Split函数?
我想要做的是导入一个写得像的文本文件;
名称:名字
名2:lastname2
所以它只显示名称和名称2。我已经搜索了几天,但我似乎无法弄明白!我不知道我做错了什么以及如何在不使用StreamReader或其他任何东西的情况下导入文本文件。
编辑:
我正试图将某些内容发布到类似的网站上;
example.com/q=(name without“:”)
编辑2:
StreamReader list = new StreamReader(@"list.txt");
string reader = list.ReadToEnd();
string[] split = reader.Split(":".ToCharArray());
Console.WriteLine(split);
输出为;
System.String[]
你在这里遇到了一些问题。首先,使用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[]
它不会自动给你所有的值,你必须自己写。
因此,如果你的line
变量是:"name:Steve"
,split变量将有两个索引,如下所示:
//split[0] = "name"
//split[1] = "Steve"
我做了一个小提琴here演示。
我的文件大小很小,你的名字:一行中的姓氏使用:
var lines = File.ReadAllLines("filaPath");
foreach (var line in lines)
{
var array = line.Split(':');
if (array.Length > 0)
{
var name = array[0];
}
}
如果名字:姓氏不在新行,请告诉我它是如何分开的