黑马程序员技术交流社区
标题:
这题有会做的吗?
[打印本页]
作者:
甘斌斌
时间:
2013-6-16 07:38
标题:
这题有会做的吗?
文本文件中存储了多个文章标题、作者,标题和作者之间用若干空格(数量不定)隔开。
每行一个,标题有的长有的短,输出到控制台的时候最多标题长度10。
如果超过10,则截取长度8的子串并且最后添加“...”,加一个竖线后输出作者的名字。
不大明白这题的意思,同学们帮帮忙。
作者:
高腾
时间:
2013-6-16 08:15
string[] lines = System.IO.File.ReadAllLines(@"F:\1.txt", Encoding.Default);//找到文件
for (int i = 0; i < lines.Length; i++)
{
//移除每行中以空格分割后的多余空格
string[] line = lines[i].Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries);
string title = line[0];//存储标题
string name = line[1];//存储姓名
if (title.Length > 10)
{
title = title.Substring(0, 8) + "...";
}
Console.WriteLine("{0}|{1}", title, name);
}
Console.ReadKey();
复制代码
作者:
关关雎鸠
时间:
2013-6-16 09:30
很简单啊。。首先读取文本文件,在读的过程中去掉空格,同时判断标题长度(超过10的截取并加“……”),然后再添加竖线即可,最后输出。
作者:
陈壹
时间:
2013-6-16 10:06
string[] strs = System.IO.File.ReadAllLines(文本路径,Encoding.Default); //读取文本,并将内容赋值给数组strs
foreach (string str in strs) //用foreach遍历数组中的元素
{
string[] line = str.Split(" " , StringSplitOptions.RemoveEmptyEntries); //将str用" "分割,自动清除空字符
string title = line[0];//存储标题
string name = line[1];//存储姓名
if (title.Length > 10) //判断标题长度
{
title = title.Substring(0, 8) + "...";
}
Console.WriteLine("{0}|{1}", title, name);
}
Console.ReadKey();
作者:
李云飞
时间:
2013-6-16 11:41
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace test4
{
class Program
{
static void Main(string[] args)
{
//定义一个以书名为键作者为值得字典集合
Dictionary<string, string> bookDit = new Dictionary<string, string>();
//用默认的编码方式将本地的数目清单读出来存放到字符串str中
string str = File.ReadAllText(@"F:\VS\VS08\黑马入学测试\test4\books.txt", Encoding.Default);
//输出文本文件中的原始内容
Console.WriteLine("文本文件中的原始内容如下:");
Console.WriteLine(str);
Console.Write("--------------------------------------------------------------------------------");
Console.WriteLine("经过处理后的文本文件中的内容如下:");
//对字符串用空格、\n、\r进行切割并且去掉切割得到的空子字符串
string [] splictArr = str.Split(new char[] {' ','\n','\r'}, StringSplitOptions.RemoveEmptyEntries);
//将书名作为键作者作为值添加到字典集合中
for (int i = 0; i < splictArr.Length; i=i+2)
{
bookDit.Add(splictArr[i], splictArr[i + 1]);
}
//遍历字典集合中的键
foreach(string title in bookDit.Keys)
{
//当键(书名)的长度不超过10时,输出在书名和作者的名字(书名和作者之间用一个竖线作为分隔)
if (title.Length < 10)
{
Console.WriteLine(title + "|" + bookDit[title]);
}
//当键(书名)的长度超过10时,截取长度8的子串并且最后添加“...”,加一个竖线后输出作者的名字
else
{
Console.WriteLine(title.Substring(0, 8) + "..." + "|" + bookDit[title]);
}
}
Console.ReadKey();
}
}
}
楼主 可以参考一下,如有不妥之处请指出。谢谢!
作者:
轮回
时间:
2013-6-16 14:44
static void Main(string[] args)
{
string[] lines = File.ReadAllLines(@"D:\1.txt", Encoding.Default);//读取文件
foreach (string line in lines)
{
string[] strs = line.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
string title = strs[0];//标题
string author = strs[1];//作者
if (strs[0].Length>10)//判断长度
{
title = strs[0].Substring(0, 8)+"...";//从中截取长度8
Console.WriteLine("{0}|{1}", title, author);
}
else
{
Console.WriteLine("{0}|{1}", title, author);
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2