A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 潘龙旺 中级黑马   /  2013-6-25 10:25  /  1105 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 潘龙旺 于 2013-6-26 11:38 编辑

文本文件中存储了多个文章标题、作者,标题和作者之间用若干空格(数量不定)隔开,每行一个,标题有的长有的短,输出到控制台的时候最多标题长度10,如果超过10,则截取长度8的子串并且最后添加“...”,加一个竖线后输出作者的名字。这是一道基础测试题,不会做,求答案!

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

2 个回复

正序浏览
  1. static void Main(string[] args)
  2.         {
  3.             //3、 文本文件中存储了多个文章标题、作者,标题和作者之间用若干空格(数量不定)隔开,每行一个,标题有的长有的短,
  4.             //输出到控制台的时候最多标题长度10,如果超过10,则截取长度8的子串并且最后添加“...”,加一个竖线后输出作者的名字。
  5.             string[] lines = File.ReadAllLines("\\文本.txt", Encoding.Default);//读取文本文档的内容放入字符串数组中
  6.             foreach (string line in lines)//便利字符串数组
  7.             {
  8.                 string[] str1 = line.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);//将每一行数据以空格分割并去掉空字符串存放到str1中
  9.                 string s1;
  10.                 if (str1[0].Length > 10)//判断文章标题长度是否不超过10 超过10 截取前8个字符 后面用“....”表示 没有超过10 正常显示 标题和作者用|分开
  11.                 {
  12.                     s1 = str1[0].Substring(0, 8) + "...|";
  13.                 }
  14.                 else
  15.                 {
  16.                     s1 = str1[0] + "|";
  17.                 }
  18.                 string name = str1[1];
  19.                 string ss = s1 + name;
  20.                 Console.WriteLine("文章标题和作者:{0}", ss);
  21.             }
  22.             Console.ReadLine();
  23.             
  24.         }
复制代码
文本文件 要放在 Debug 下

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

回复 使用道具 举报
技术点及思路:
1.读取txt
2.字符串的分割以及截取
所有代码如下:
  1. using System;
  2. using System.IO;
  3. using System.Text;</P>
  4. <P>namespace test3
  5. {
  6. internal class Program
  7. {
  8.   private static void Main(string[] args)
  9.   {
  10.    // 1. 读取txt文本
  11.    const string path = @"..\..\WorksInfo.txt";
  12.    var strs = File.ReadAllLines(path, Encoding.Default); //读取返回字符串数组
  13.    // 2. 循环处理
  14.    foreach (var s in strs)
  15.    {
  16.     var row = s.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); //逐行以空格分割
  17.     if (row[0].Length > 10) //超过10 则截取8加...
  18.     {
  19.      Console.WriteLine(row[0].Substring(0, 8) + "...|" + row[1]);
  20.     }
  21.     else
  22.     {
  23.      Console.WriteLine(row[0] + "|" + row[1]);
  24.     }
  25.    }
  26.    Console.ReadKey();
  27.   }
  28. }
  29. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马