none
C#把文本读入数组 RRS feed

  • 问题

  • 具体是这样:文本有多行,每行的各词语之间有空格,要把每个词语读入一个数组中。怎样实现??
    2011年5月27日 13:26

答案

  • static string[] GetWordList(string sample)
    {
     int i = 0;
     StringBuilder sb = new StringBuilder();
     List<string> wordList = new List<string>();
    
     while (i < sample.Length)
     {
      while (i < sample.Length && char.IsWhiteSpace(sample[i]))
      {
       i++;
      }
      while (i < sample.Length && !char.IsWhiteSpace(sample[i]))
      {
       sb.Append(sample[i]);
       i++;
      }
      wordList.Add(sb.ToString());
      sb.Clear();
     }
     return wordList.ToArray();
    }
    

    你可以使用

    String.Split(new char[] { ' ', '\r', '\n', '\t' }, StringSplitOptions.RemoveEmptyEntries);
    


    EFanZh
    2011年5月27日 14:56
  • 你好:)

    假设你的文本文件如下(每一个都有一个空格,且只有一个)

    词语1 词语2 词语3……词语N

    词语1 词语2 词语3……词语N

    …………………………

    string[]santences = File.ReadAllLines("C:\\try.txt");

    List<string> words = new List<string>();

    foreach(string s in santences)

    {

         words.AddRange(s.Split(' '));

    }


    如果你有其它意见或私下交流,请发送邮件到:maledong@qq.com;或者请QQ我
    下载MSDN桌面工具(Vista,Win7)
    下载Technet桌面小工具(Vista,Win7)
    慈善点击,点击此处
    2011年5月28日 6:38
    版主
  • 具体是这样:文本有多行,每行的各词语之间有空格,要把每个词语读入一个数组中。怎样实现??


    dear

    不知您對IO處理有哪裡不懂,以下有許多的範例您可參考
    http://msdn.microsoft.com/zh-tw/library/system.io.file%28VS.80%29.aspx

    基本你的需求流程是開檔→讀取每一行並分析(split)→裝入集合。
    讀檔的方式就像下面的連結
    http://msdn.microsoft.com/zh-tw/library/db5x7c0d%28VS.80%29.aspx

    字串切割的方式可參考以下
    http://www.dotblogs.com.tw/yc421206/archive/2010/07/01/16314.aspx

    集合建議使用StringCollection
    http://www.dotblogs.com.tw/yc421206/archive/2010/10/26/18577.aspx

     


    秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/
    2011年5月28日 15:34

全部回复

  • static string[] GetWordList(string sample)
    {
     int i = 0;
     StringBuilder sb = new StringBuilder();
     List<string> wordList = new List<string>();
    
     while (i < sample.Length)
     {
      while (i < sample.Length && char.IsWhiteSpace(sample[i]))
      {
       i++;
      }
      while (i < sample.Length && !char.IsWhiteSpace(sample[i]))
      {
       sb.Append(sample[i]);
       i++;
      }
      wordList.Add(sb.ToString());
      sb.Clear();
     }
     return wordList.ToArray();
    }
    

    你可以使用

    String.Split(new char[] { ' ', '\r', '\n', '\t' }, StringSplitOptions.RemoveEmptyEntries);
    


    EFanZh
    2011年5月27日 14:56
  • 你好:)

    假设你的文本文件如下(每一个都有一个空格,且只有一个)

    词语1 词语2 词语3……词语N

    词语1 词语2 词语3……词语N

    …………………………

    string[]santences = File.ReadAllLines("C:\\try.txt");

    List<string> words = new List<string>();

    foreach(string s in santences)

    {

         words.AddRange(s.Split(' '));

    }


    如果你有其它意见或私下交流,请发送邮件到:maledong@qq.com;或者请QQ我
    下载MSDN桌面工具(Vista,Win7)
    下载Technet桌面小工具(Vista,Win7)
    慈善点击,点击此处
    2011年5月28日 6:38
    版主
  • 具体是这样:文本有多行,每行的各词语之间有空格,要把每个词语读入一个数组中。怎样实现??


    dear

    不知您對IO處理有哪裡不懂,以下有許多的範例您可參考
    http://msdn.microsoft.com/zh-tw/library/system.io.file%28VS.80%29.aspx

    基本你的需求流程是開檔→讀取每一行並分析(split)→裝入集合。
    讀檔的方式就像下面的連結
    http://msdn.microsoft.com/zh-tw/library/db5x7c0d%28VS.80%29.aspx

    字串切割的方式可參考以下
    http://www.dotblogs.com.tw/yc421206/archive/2010/07/01/16314.aspx

    集合建議使用StringCollection
    http://www.dotblogs.com.tw/yc421206/archive/2010/10/26/18577.aspx

     


    秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/
    2011年5月28日 15:34