CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

读取文本内容问题

楼主johnny1983()2006-12-01 08:23:58 在 .NET技术 / C# 提问

有一文本文件(无中文),格式不规则,比如这一段:  
  From:   decay@cbnewsj.cb.att.com   (dean.kaflowitz)//回车  
  Subject:   Re:   about   answers//回车  
  Organization:   AT&T//回车  
  Distribution:   na//回车  
  Lines:   18//回车  
   
  In   article  
   
  以上文本我要实现按一个个单词显示在控制台,但是我现在显示出的是这样的:  
  From  
  //这里空了一行,我不需要空一行  
  decay  
  cbnewsj  
  cb  
  att  
  com  
  //这里又空了一行  
  dean  
  kaflowitz  
  Subject  
  //空行  
  Re  
  //空行  
  about  
  answersOrganization   //这里两个单词连起来了,下面就不说了,特征都出现了。碰到连续两个标点字符会自动换行,碰到回车会和下面单词合并。顺便说一下,我是用split来分隔单词的,请高手指教 问题点数:20、回复次数:9Top

1 楼HeddaZ(大飞飞)回复于 2006-12-01 08:27:28 得分 0

用javascript正则表达式,很简单哟  
  Top

2 楼johnny1983()回复于 2006-12-01 08:38:16 得分 0

拜托举个例子Top

3 楼pumaadamsjack()回复于 2006-12-01 09:09:35 得分 0

那个不是空行吧,应该使一个空格字符,你split话吧那个字符串数组其中的   :   换成:+空格应该就可以了啊Top

4 楼johnny1983()回复于 2006-12-01 09:16:25 得分 0

char[]   delimiterChars   ={   '   ',   ':',   '@',   '<',   '>',   '.',   '\t','\r','\n','(',')','?'};  
  不可以冒号加空格的啦,字符型数组阿  
  wordArr=content.split(delimiterChars   );Top

5 楼johnny1983()回复于 2006-12-01 09:40:22 得分 0

换句话说,如果一个字符串连着出现split字符好像就有问题。比如:a,,b或者a,   bTop

6 楼tuyile006(小y)回复于 2006-12-01 09:50:02 得分 0

不是空行   是空格  
  应该用划分  
  char[]   charSplit={   '   ',   ':',   '@',     '.',   '\t','\r','\n','(',')','&'};  
  string[]   words=content.split(charSplit);Top

7 楼chrisky2006()回复于 2006-12-01 09:53:48 得分 0

 
                          char[]   words   =   content.ToCharArray(0,str.Length-1);    
                          string[]   sWords   =   new   string[30];//长度可以处理  
                          Boolean   flag   =   true;  
                          int   k   =   0;  
   
                          for   (int   i   =   0;   i   <   str.Length-1;   i++)  
                          {  
                                  if   (('a'   <=   words[i])   &&   (words[i]   <=   'z'))  
                                  {  
                                          sWords[k]   =   sWords[k]   +   words[i].ToString();  
                                          flag   =   true;  
                                  }  
                                  else   if   (flag   ==   true)  
                                  {  
                                          k++;  
                                          flag   =   false;  
                                  }  
                          }  
   
                          for(int   j   =   0;j<k;j++)  
                          {  
                                  MessageBox.Show(sWords[j]);  
                          }  
  Top

8 楼johnny1983()回复于 2006-12-01 10:13:13 得分 0

tuyile006(小y)你的做法和我的没有区别  
   
  chrisky2006()   我需要用split方法Top

9 楼johnny1983()回复于 2006-12-01 11:06:57 得分 0

顶Top

相关问题

关键词

得分解答快速导航

  • 帖主:johnny1983

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo