我有一个字符串,我想根据一个int变量在该字符串的开头添加一些空格。
我想做这样的事情:
int NumberOfTabs = 2;
string line = "my line";
string line = String.Format("{0}{1}", " " * NumberOfTabs, line);
...现在行将有8个空格
最简单的方法是什么?
答案 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;