如何以编程方式在C#中创建字符串?

时间:2010-03-09 18:17:00

标签: c#

我有一个字符串,我想根据一个int变量在该字符串的开头添加一些空格。
我想做这样的事情:

int NumberOfTabs = 2;
string line = "my line";
string line = String.Format("{0}{1}", "    " * NumberOfTabs, line);

...现在行将有8个空格

最简单的方法是什么?

10 个答案:

答案 0 :(得分:18)

您可以像这样使用String(char, Int32)构造函数:

string line = String.Format("{0}{1}", new String(' ', NumberofTabs * 4), line);

或更高效:

string line = String.Concat(new String(' ', NumberofTabs * 4), line);

或者,更简洁一点:)

string line = new String(' ', NumberofTabs * 4).Concat(line);

评论提出了一个很好的观点,如果你想真正拥有标签字符,只需将' '更改为'\t',然后像这样取出* 4

string line = String.Concat(new String('\t', NumberofTabs), line);

答案 1 :(得分:8)

int i=8;
System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.Append(" ", i);

答案 2 :(得分:6)

new string(' ', NumberOfTabs )

答案 3 :(得分:4)

str = str.PadLeft(str.Length+tabs*4);

答案 4 :(得分:3)

在C#中,字符串是不可变的。你应该真的使用stringbuilder类。

代码示例列在链接中:

http://msdn.microsoft.com/en-us/library/system.text.stringbuilder.aspx

答案 5 :(得分:2)

您可以使用以下内容:

String.Empty.PadRight(NumberOfTabs)

答案 6 :(得分:2)

您可以在文字的开头添加标签,如下所示:

line.PadLeft(NumberOfTabs, '\t');

\ t是“标签”的转义字符 (Inserting a tab character into text using C#

答案 7 :(得分:2)

int NumberOfTabs = 2;
string line = "my line";
string results = line.PadLeft(line.Length + NumberOfTabs, ' ');

答案 8 :(得分:2)

不是任何衡量标准的最佳答案,但这是一个有趣的,一个LINQ单线:

var result = new string(Enumerable.Repeat(' ', count).Concat("my line").ToArray());

答案 9 :(得分:0)

您可以创建一个包含自定义空格数的新字符串。不幸的是,Python(" " * 2)中没有字符串乘法。但是你可以将空格数乘以4得到“标签”:

int numberOfTabs = 2;
string line = "my line";
string whitespaces = new string(' ', numberOfTabs * 4);
string s = whitespaces + line;