本帖最后由 熊丽 于 2013-8-20 18:48 编辑
- <p> </p><p>using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.IO;
- using System.Text.RegularExpressions;</p><p>namespace test4
- {
- class Program
- {
- //4、 文本文件中存储了多个文章标题、作者,标题和作者之间用若干空格(数量不定)隔开,
- //每行一个,标题有的长有的短,输出到控制台的时候最多标题长度10,如果超过10,则截取长度8的子串并且最后添加“...”,加一个竖线后输出作者的名字。
- static void Main(string[] args)
- {
- Console.WriteLine("文本按格式输出:");
- OutputText(@"..\..\..\test4.txt");
- Console.ReadKey();
- }
- protected static void OutputText(string path)//解析文本
- {
- try
- {
- using (FileStream filestream = new FileStream(path, FileMode.OpenOrCreate))//读取文本
- {
- using (StreamReader streamreader = new StreamReader(filestream,Encoding.GetEncoding("gb2312")))
- {
- string str = "";
- <font color="red"> while ((str=streamreader.ReadLine()) != null)//</font>按格式输出 <font color="red"> 可以正确的输出,输出结果为02.png</font>
- {
- str = System.Text.RegularExpressions.Regex.Replace(str, "//s+", "");//将多空格替换为一个空格
- string[] strlist=Regex.Split(str, " ");
- List<string>LineStream=new List<string>();
- foreach (string str1 in strlist)//去除数组中为空的值
- {
- if (str1 != null&&str1!="")
- {
- LineStream.Add(str1);
- }
-
- }
- if (LineStream[0].Length > 10)//长度大于10.则截取
- {
- Console.WriteLine(string.Format("{0}...|{1}", LineStream[0].Substring(0, 8), LineStream[1]));
- }
- else
- Console.WriteLine(string.Format("{0}|{1}", LineStream[0], LineStream[1]));</p><p> }
- }
- filestream.Close();
- }
- }
- catch
- {
- }
- }
- }
- }
- </p>
复制代码- <p>当改为这样时,输出结果为1.png,只能输出中间一行</p><p><p><font color="red"> while (streamreader.ReadLine() != null)//</font>按格式输出
- {
- str = streamreader.ReadLine();</p></p>
复制代码 这是为什么啊,愿各位大神告之 |
|