C#学习日记 StringBuilder

来源:互联网 发布:韩版男装淘宝店有哪些 编辑:程序博客网 时间:2024/05/17 13:39

当字符串需要多次修改操作,而且数据比较多的时候可以用StringBuilder,string做修改操作的时候,都实际上新建了一个字符串。StringBuilder还可以指定容量,也可以不指定。

using System;using System.Text;namespace Wrox{public class MainEntryPoint{static int Main(string[] args){Vector v1 = new Vector(1, 32, 5);Vector v2 = new Vector(845.4, 54.3, -7.8);Console.WriteLine("\nIn JIK format,\n v1 is {0,30:JIK}\n v2 is {1,30:JIK}", v1, v2);Console.WriteLine("\nIn default format,\n v1 is {0,30}\n v2 is {1,30}", v1, v2);Console.WriteLine("\nIn VE format,\n v1 is {0,30:VE}\n v2 is {1,30:VE}", v1, v2);Console.WriteLine("\nIn Norm format,\n v1 is {0,30:N}\n v2 is {1,30:N}", v1, v2);return 0;}}struct Vector : IFormattable{public double x, y, z;public Vector(double x, double y, double z){this.x = x;this.y = y;this.z = z;}public override string ToString(){return String.Format("({0},{1},{2})", x, y, z);}public string ToString(string format, IFormatProvider formatProvider){if(format == null)return ToString();string formatUpper = format.ToUpper();switch(formatUpper){case "N":return "||"+Norm().ToString()+"||";case "VE":return String.Format("({0:E},{1:E},{2:E})", x, y, z);case "IJK":StringBuilder sb = new StringBuilder(x.ToString(),30);sb.AppendFormat(" i + ");sb.AppendFormat(y.ToString());sb.AppendFormat(" j + ");sb.AppendFormat(z.ToString());sb.AppendFormat(" k");return sb.ToString();default :return ToString();}}public double Norm(){return x * x + y * y +z * z;}}}


0 0
原创粉丝点击