繁体   English   中英

C#文本对齐

[英]C# text alignment

从文本文件中读取一些字符串并将它们写入文本文件只有一个小问题,并且与文本对齐。 {4}参数需要向右格式化,以便它们全部垂直对齐。

while (recordIn != null)
{
    fields = recordIn.Split(DELIM);
    emp.accNumber = Convert.ToInt32(fields[0]);
    emp.lastName = fields[1];
    emp.firstName = fields[2];
    emp.funds = Convert.ToDouble(fields[3]);
    double money = Convert.ToDouble(fields[3].ToString());


    if (money < 0)
    {
        Console.WriteLine("{0},{1},{2}, {3, 2}, {4}", emp.accNumber, emp.lastName, emp.firstName, emp.funds.ToString("F2"), creditOutput);
    }
    else
    {
        Console.WriteLine("{0},{1},{2}, {3, 2} {4}", emp.accNumber, emp.lastName, emp.firstName, emp.funds.ToString("F2"), debitOutput);            
    }
    recordIn = reader.ReadLine();
}

您可以尝试string.PadLeftstring.PadRight

你也可以这样做:

要将字符串对齐到左侧(右侧的空格),请使用带逗号(,)的格式化patern,后跟负数字符: String.Format(“{0,-10}”,text) 要右对齐,请使用正数:{0,10}。

您可以使用选项卡分隔所有值:

Console.WriteLine("{0} \t {1} \t etc... ", emp.accNumber, emp.last name...

或者你可以在{4}之前添加一个标签,以便对齐它们。 可能需要两个标签。

我刚刚在Visual Studio 2012中执行了以下操作

Console.WriteLine("{0,200}", "SomeText");

它右对齐200字符字段中的“SomeText”。 你可以左对齐“{0,-200}”;

Console.WriteLine("{0,-200}", "SomeText");

来自: http//msdn.microsoft.com/en-us/library/system.string.format(v = vs.110).aspx

格式项A格式项具有以下语法:

{ index[,alignment][ :formatString] }

括号表示可选元素。 需要打开和关闭支架。 (要在格式字符串中包含文字开头或右括号,请参阅“复合格式”一文中的“转义大括号”部分。)例如,格式化货币值的格式项可能如下所示:C#C ++ VB

String.Format("{0,-10:C}", 126347.89m);         

格式项具有以下元素:

指数

参数的从零开始的索引,其字符串表示将包含在字符串中的此位置。 如果此参数为null,则字符串中此位置将包含空字符串。

对准

可选的。 一个有符号整数,表示插入参数的字段的总长度,以及它是右对齐(正整数)还是左对齐(负整数)。 如果省略对齐,则相应参数的字符串表示形式将插入到没有前导或尾随空格的字段中。

formatString的

可选的。 一个字符串,指定相应参数的结果字符串的格式。 如果省略formatString,则调用相应参数的无参数ToString方法以生成其字符串表示形式。 如果指定formatString,则format项引用的参数必须实现IFormattable接口。 支持格式字符串的类型包括:

使用格式项中的对齐方式,如{4,10} 这使您的{4}列宽10个字符,并将内容与右侧对齐。 完整语法: { index[,alignment][ :formatString] }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM