我正在使用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();
答案 0 :(得分:1)
使用FOR循环,然后检查该字符是否是某个所需nTH字符的因子。如果是这样,请添加额外的'/'。
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();
答案 1 :(得分:0)
您可以使用for循环遍历字符串数组,该循环提供索引
对于每次迭代,除了','之外,还要将当前字符串添加到StringBuilder
,以防我们仍未到达数组中的最后一个字符串。
此外,在x字符串后添加'/'。我们可以知道我们使用% (modulus)运算符到达了x
个字符串
请注意,我从index = 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("/");
}
}
}
答案 2 :(得分:0)
添加一个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();