我试图使用动态ammount在单词之间制作一个简单的选项卡空间。我将如何做到这一点?多次将相同的值添加到字符串中
只要是这样的:
string p1 = keysC[pos]+"="+valsC[pos];
int tabs = (60 - p1.Length)/4;
wr.WriteLine(p1 + ("\t" * tabs) +"//"+comsC[pos]);
我试图使用动态ammount在单词之间制作一个简单的选项卡空间。我将如何做到这一点?多次将相同的值添加到字符串中
只要是这样的:
string p1 = keysC[pos]+"="+valsC[pos];
int tabs = (60 - p1.Length)/4;
wr.WriteLine(p1 + ("\t" * tabs) +"//"+comsC[pos]);
的String
contructor有出过载。
string p1 = keysC[pos]+"="+valsC[pos];
int tabs = (60 - p1.Length)/4;
wr.WriteLine(p1 + new string('\t', tabs) +"//"+comsC[pos]);
注意构造函数的第一个参数是char
而不是string
。
听起来像是只需要编写一个重复的次数相同的字符串N多
static string RepeatString(string source, int times) {
var builder = new StringBuilder(source.Length * times);
for (int i = 0; i < times; i++) {
builder.Append(source);
}
return builder.ToString();
}
请注意,如果你只关心重复char
像\t
然后使用@的new string(theChar, theCount)
+1。甚至'的string.join(NULL,Enumerable.Repeat(源,倍));' –
@AlexeiLevenkov:这将是比构造效率较低。 –
@TimSchmelter - 实际上对于单个字符,因为在实际OP的情况下,应该使用构造函数。 –
您可以使用string
constructor:
string allTabs = new string('\t', tabs);
试试这个:
string spacing = new String('\t', tabs);
你在问什么?什么不行?预期的结果是什么?这是一个问题还是答案? – Cosmin
附注:不是每个人都有标签设置为4(我相信在大多数情况下,默认实际上是8)。考虑使用空格填充(几乎相同的代码,但在更多情况下可以正确显示)。 –