C#如何将从txt中提取的信息拆分呢,去除空格和逗号等无用信息。

txt文档是这样的

交易号TID    顾客购买的商品
T1  bread, cream, milk, tea
T2  bread, cream, milk
T3  cake, milk
T4  milk, tea
T5  bread, cake, milk
T6  bread, tea
T7  beer, milk, tea
T8  bread, tea
T9  bread, cream, milk, tea
T10 bread, milk, tea

我从第二行开始读,用的streamreader
例如,第二行赋值给一个string类型line
但是我想把line拆分开来,并合并到一个新的字符串组中
例如 string[] case = {"T1","bread","cream","milk","tea"}
但是我就在这里掐住了,不知道该如何分别拆分,string.split弄了半天也没弄好,用char[]也弄了半天,主要是空格和逗号不知道该怎么处理
想听听各位的指导

4个回答

你的代码在哪?通常.split(',')这样add赋值给list[]到数组即可
加入非要用string[]数组的话就要用.Concat连接数组即可,例如:数组=数组.Concat(new string[] { "零零" });
图片说明
补充图片在此

yXinSAMA
yXinSAMA 谢谢了谢谢
一年多之前 回复
xianfajushi
智者知已应修善业 回复yXinSAMA: 听不懂你意思,既然已经可以分开了,又什么如何分割?!
一年多之前 回复
yXinSAMA
yXinSAMA 回复智者知已应修善业: 我用debug模式下使用foreach(char i in sline)测试了,比如第二行的i分别是{'T','0','\t',','等等}换句话说,T0和下一项之间的不是空格而是制表符。现在我已经可以用split分开了,之前我以为T0和下一项之间是很多空格。但是现在我面临的问题时怎么用split分割多个符号
一年多之前 回复
xianfajushi
智者知已应修善业 回复yXinSAMA: 假如把你说的文本内容复制到一个文本文件,那么还有'\t'这样的符号?应该不会有了!所以说无法测试你说的情况。
一年多之前 回复
xianfajushi
智者知已应修善业 回复yXinSAMA: 假如把你说的文本内容复制到一个文本文件,那么还有
一年多之前 回复
yXinSAMA
yXinSAMA 回复: 也就是说我想同时以',' 和 '\t'为界限分割,我想分割后用stringbuilder创建string[] cas
一年多之前 回复
yXinSAMA
yXinSAMA 诶,除了逗号,还有个就是T1与后面项之间有个'\t',如果用split分割符号改怎么使用呢?
一年多之前 回复
var lines = File.ReadAllLines("c:\\xxx\\1.txt");
var dic = lines.Skip(1).Select(x => new { k = Regex.Match(x, @"T\d+").Value, v = Regex.Match(x, @"(?<=T\d+\s+)w+").Value })
.ToDictionary(x => x.k, x => x.v);
foreach (var item in dic)
{
Console.WriteLine("key = {0}, values = {1}", item.Key, item.Value);
}
yXinSAMA
yXinSAMA 回复操作员马善福(贵阳专业挖机): 谢谢谢谢!!!
一年多之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复yXinSAMA: tmp.Count()
一年多之前 回复
yXinSAMA
yXinSAMA 回复操作员马善福(贵阳专业挖机): 现在我还遇到一个问题额,最终我海慧寺用了split,string[] tmp = split(',','\t') 我该如何获取tmp的宽度呢,就是说我想知道tmp存了多少个字符串
一年多之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复yXinSAMA: 是的,但是都是很简单的,\d表示连续数字,\w代表文字,\s代表空格
一年多之前 回复
yXinSAMA
yXinSAMA 请问这里是用了正则表达式吗,我正自学到这里,好头疼啊
一年多之前 回复

1、split:按照一定的拆分符号进行拆分,如逗号,空格,Tab等
2、substring:对字符串h截取一部分字符串

先将获取的字符串调用string.replaceAll("\s*", "");去掉所有空格,制表符或换页符号等,然后调用string.split(",")即可获取想要的结果

qq_22847605
qq_22847605 回复yXinSAMA: 噢噢,你是c语言的,那就用最原始方法循环来删除所有空格,看错了
一年多之前 回复
yXinSAMA
yXinSAMA 嗷嗷,我知道了我知道了,谢谢,replaceAll好像是java里的
一年多之前 回复
yXinSAMA
yXinSAMA 诶诶,我sline.replace,后面添加了all就不对啊,好像没有额,你的办法我也理解了
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐