How many spaces does \t use in c#

て烟熏妆下的殇ゞ 提交于 2019-11-28 12:17:28

问题


I am building a report using StringBuilder and the details of it to be properly intended and aligned for which i will be using

private static int paperWidth = 55; //it defines the size of paper
private static readonly string singleLine = string.Empty.PadLeft(paperWidth, '-');
StringBuilder reportLayout;
reportLayout.AppendLine("\t" + "Store Name");



I want Store Name in center and many such more feilds by use of \t
Thanks in Advance.

EDIT I want to print like. Store Name in center


回答1:


If you're simulating what tabs look like at a terminal you should stick with 8 spaces per tab. A Tab character shifts over to the next tab stop. By default, there is one every 8 spaces. But in most shells you can easily edit it to be whatever number of spaces you want

You can realize this through the following Code:

  string tab = "\t";
  string space = new string(' ', 8);
  StringBuilder str = new StringBuilder();
  str.AppendLine(tab + "A");
  str.AppendLine(space + "B");
  string outPut = str.ToString(); // will give two lines of equal length
  int lengthOfOP = outPut.Length; //will give you 15

From the above example we can say that in .Net the length of \t is calculated as 1




回答2:


A Tab is a Tab and its meaning is created by the application that renders it.

Think of a word processor where a Tab means:

Go to the next tab stop.

You can define the tab stops!

To center output do not use Tabs, use the correct StringFormat :

StringFormat fmt = new StringFormat() 
 { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center };

This centers the text inside a rectanlge in both directions:

e.Graphics.DrawString(someText, someFont, someBrush, layoutRectangle, fmt);

or something like it..

But it looks as if you want to embed the centering inside a text.

This will only work if you really know everything about the output process, i.e. the device, the Font and Size as well as the margins etc..

So it will probably not be reliable at all, no matter what you do.

The best alternative may be to either give up on plain text or use a fixed number of spaces to 'mean' 'centered' and then watch for this number when you render.

If you don't have control over the rendering, it will not work.



来源:https://stackoverflow.com/questions/32880669/how-many-spaces-does-t-use-in-c-sharp

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!