博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
读取txt文件,并用其他格式显示
阅读量:5914 次
发布时间:2019-06-19

本文共 3332 字,大约阅读时间需要 11 分钟。

这篇博客参照

题目是这样的:

一个txt文件,内容格式:

39.4% 2013-07-09 15-38-79

35.7 2013-08-09 15-38-59

39.4% 2013-07-09 15-38-79

35.7 2013-08-09 15-38-59

39.4% 2013-07-09 15-38-79

35.7 2013-08-09 15-38-59

39.4% 2013-07-09 15-38-79

35.7 2013-08-09 15-38-59

39.4% 2013-07-09 15-38-79 35.7 2013-08-09 15-38-59

现在要想这样输出:

|39.4%|2013-07-0915-38-79|35.7|2013-08-0915-38-59|

|35.7|2013-08-0915-38-59|39.4%|2013-07-0915-38-79|
|35.7|2013-08-0915-38-59|35.7|2013-08-0915-38-59|

直接贴代码:我的代码跟原帖由些不同。我的代码中用的是ref(不需先赋值,out得先赋值),另外我这里一个方法用的是静态函数,一个用非静态,其实道理都是一样。

class Program    {        static void Main(string[] args)        {          string[] lines = File.ReadAllLines("../../ReadLineToAnotherTypeOfShow.txt");           List
ccList=new List
(); ChangeClass ccItem = null; foreach(string line in lines) { //方法一 //ChangeClass cc = new ChangeClass(); //cc.TryParse(line,ref ccItem); //方法二 if( ChangeClass2.TryParse(line,ref ccItem)) ccList.Add(ccItem); } for (int i = 1; i < ccList.Count;i=i+2 ) { Console.WriteLine("|"+ccList[i-1]+"|"+ccList[i]+"|"); } Console.ReadKey(); } } partial class ChangeClass { protected string e1; protected string e2; public ChangeClass() { } public ChangeClass(string e1,string e2) { this.e1 = e1; this.e2 = e2; } public bool TryParse(string singelLine,ref ChangeClass item) { if (string.IsNullOrEmpty(singelLine.Trim())) { return false; } string[] array = singelLine.Trim().Split(' '); if (array[0] == "" || array[1] == "" || array[2] == "") return false; e1 = array[0].ToString(); e2 = array[1] + array[2].ToString(); item = new ChangeClass(e1,e2); return true; } public override string ToString() { return "" + e1 + "|" + e2 + ""; } } partial class ChangeClass2 { protected static string E1; protected static string E2; public ChangeClass2(string e1, string e2) { E1 = e1; E2 = e2; } public static bool TryParse(string singelLine, ref ChangeClass item) { if (string.IsNullOrEmpty(singelLine.Trim())) { return false; } string[] array = singelLine.Trim().Split(' '); if (array[0] == "" || array[1] == "" || array[2] == "") return false; E1 = array[0].ToString(); E2 = array[1] + array[2].ToString(); item = new ChangeClass(E1, E2); return true; } public override string ToString() { return "" + E1 + "|" + E2 + ""; } }

  总结上面的几个知识点:1。从changclass2可以发现,其实静态变量也是可以通过构造函数赋值的。

                                      2、我们也可以通过静态的类型构造函数对静态赋值,但是,不能有参数,形如: static ChangeClass2(){E1=10;}//

通过静态变量赋值,必须是常量。

                                      3、ref和out都引用同一个内存块,不同是,声明ref的变量不需赋值,而out变量要提前赋值;

                                      4.这个方法中还有一种思想:

                                                     通过foreach和迭代器结合,操作数组。我们通过在classchange类中重写头string()方法,导致在main()中调用console.writline(classchange的实例),会直接调用重写的头string()方法,从而输出我们自己想要的结果;

 

 

 

转载于:https://www.cnblogs.com/fjsnail/p/3247575.html

你可能感兴趣的文章
Nginx/LVS/HAProxy负载均衡软件的优缺点详解
查看>>
Installing and Using Standby Statspack in 11g
查看>>
Xms Xmx PermSize MaxPermSize 区别
查看>>
maven常见问题解决方法
查看>>
Object-C代码练习【复制对象的基本概念】
查看>>
Weakpass
查看>>
基于ArcFace2.0+红外双目摄像头的活体检测 [Windows][C#][.NET][WPF]
查看>>
关于 Mybatis的 $ 和 # , 你真的知道他们的细节吗?
查看>>
动态代理示例
查看>>
JavaMelody监控
查看>>
sharepoint 一个farm中部署多个sql
查看>>
深入分析Volatile的实现原理
查看>>
使用shell编程,创建10000个目录,结构类似于9/9/99
查看>>
Linux系统启动流程详解
查看>>
我的友情链接
查看>>
Magento(CE1.X)自带模块解析五
查看>>
linux基础
查看>>
Factory Method模式 (一)
查看>>
java正则表达式的学习
查看>>
Linux 环境变量的配置解决(-bash: jps: command not found)问题
查看>>