如何在 c# stringbuilder 中追加每个 X
How to append every X in c# stringbuilder
我正在使用 unity 和 c#,但不确定如何使用 stringbuilder 在每 X 个字符后附加一个“/”。我有代码,可以使用下面的代码从数组构建一个字符串,并在每个字符串后添加一个逗号,但我需要在每个 x 字符串后添加“/”
它应该例如将“122342”转换为“1,2,2,/,3,4,2”。目前它会将其转换为“1,2,2,3,4,2”
这是我已有的代码
StringBuilder Builtstring = new StringBuilder();
foreach(string griditem in tobuild){
Builtstring.Append(griditem).Append(",");
}
built = Builtstring.ToString();
您可以使用提供索引的 for 循环遍历字符串数组。
对于每次迭代,将当前字符串添加到 StringBuilder
,以及一个 ',' 以防我们仍然没有到达数组中的最后一个字符串。
此外,在 x 字符串后添加一个“/”。我们可以知道我们使用 % (modulus) 运算符达到了 x
个字符串。
请注意,我从索引 = 1 开始循环。我这样做是因为值 0 和任何正数的模运算符将产生 0,这将在第一个单词后添加 '/' 字符,我们不一定想要。
static void Insert(StringBuilder b, int x, string[] tobuild)
{
for(var index = 1; index < tobuild.Length; ++index)
{
b.Append(tobuild[index]);
if(index != tobuild.Length -1)
{
b.Append(",");
}
if(0 == index % x)
{
b.Append("/");
}
}
}
使用 FOR 循环,然后检查该字符是否是某个所需的第 n 个字符的因数。如果是这样,请添加一个额外的“/”。
int x = 2; // your x
StringBuilder builtstring = new StringBuilder();
for (int i = 0; i < tobuild.Length; i++)
{
string item = tobuild[i];
builtstring.Append(item).Append(",");
if (i%x==0) { builtstring.Append("/"); }
}
string built = builtstring.ToString();
添加一个 if 语句来评估角色,然后采取相应的行动。
StringBuilder Builtstring = new StringBuilder();
foreach(string griditem in tobuild){
if(griditem == 'x') { Builtstring.Append(griditem).Append(@"/"); }
Builtstring.Append(griditem).Append(",");
}
built = Builtstring.ToString();
或者如果您确实想在放置斜线之前计算一定数量的字符,您可以这样做。
int count = 10;
int position = 0;
StringBuilder Builtstring = new StringBuilder();
foreach(string griditem in tobuild){
if(position == count) { Builtstring.Append(griditem).Append(@"/"); position = 0; }
else{Builtstring.Append(griditem).Append(","); position++;}}
built = Builtstring.ToString();
我正在使用 unity 和 c#,但不确定如何使用 stringbuilder 在每 X 个字符后附加一个“/”。我有代码,可以使用下面的代码从数组构建一个字符串,并在每个字符串后添加一个逗号,但我需要在每个 x 字符串后添加“/”
它应该例如将“122342”转换为“1,2,2,/,3,4,2”。目前它会将其转换为“1,2,2,3,4,2” 这是我已有的代码
StringBuilder Builtstring = new StringBuilder();
foreach(string griditem in tobuild){
Builtstring.Append(griditem).Append(",");
}
built = Builtstring.ToString();
您可以使用提供索引的 for 循环遍历字符串数组。
对于每次迭代,将当前字符串添加到 StringBuilder
,以及一个 ',' 以防我们仍然没有到达数组中的最后一个字符串。
此外,在 x 字符串后添加一个“/”。我们可以知道我们使用 % (modulus) 运算符达到了 x
个字符串。
请注意,我从索引 = 1 开始循环。我这样做是因为值 0 和任何正数的模运算符将产生 0,这将在第一个单词后添加 '/' 字符,我们不一定想要。
static void Insert(StringBuilder b, int x, string[] tobuild)
{
for(var index = 1; index < tobuild.Length; ++index)
{
b.Append(tobuild[index]);
if(index != tobuild.Length -1)
{
b.Append(",");
}
if(0 == index % x)
{
b.Append("/");
}
}
}
使用 FOR 循环,然后检查该字符是否是某个所需的第 n 个字符的因数。如果是这样,请添加一个额外的“/”。
int x = 2; // your x
StringBuilder builtstring = new StringBuilder();
for (int i = 0; i < tobuild.Length; i++)
{
string item = tobuild[i];
builtstring.Append(item).Append(",");
if (i%x==0) { builtstring.Append("/"); }
}
string built = builtstring.ToString();
添加一个 if 语句来评估角色,然后采取相应的行动。
StringBuilder Builtstring = new StringBuilder();
foreach(string griditem in tobuild){
if(griditem == 'x') { Builtstring.Append(griditem).Append(@"/"); }
Builtstring.Append(griditem).Append(",");
}
built = Builtstring.ToString();
或者如果您确实想在放置斜线之前计算一定数量的字符,您可以这样做。
int count = 10;
int position = 0;
StringBuilder Builtstring = new StringBuilder();
foreach(string griditem in tobuild){
if(position == count) { Builtstring.Append(griditem).Append(@"/"); position = 0; }
else{Builtstring.Append(griditem).Append(","); position++;}}
built = Builtstring.ToString();