首先拆分然后加入字符串的子集

时间:2012-06-14 01:52:52

标签: c# string join split

我有一个输入字符串,如下所示:

thumb_634735515600845357tchayat_november_200612.jpg

我想要做的是首先拆分此字符串_。然后将得到的标记放在位置1到n并加入它们。

具体来说,就我的样本输入而言,这是我想要的输出。如您所见,thumb_已从字符串的前面删除:

634735515600845357tchayat_november_200612.jpg

我知道怎么做分裂。但接下来我该如何进行加入步骤呢?我确实意识到我可以使用for循环来进行连接。但有更好的方法吗?我不能使用子字符串方法来执行连接步骤,因为我在thumb_之前有数据。

最后,请注意_后面的thumb字符始终是_的第一个实例。

6 个答案:

答案 0 :(得分:11)

由于拇指之后的_始终是第一个实例,因此SubstringIndexOf一起完全可行。

string newString = myString.Substring(myString.IndexOf("_") + 1);

这应该从紧跟在_字符的第一个实例之后的字符开始的子字符串。

如果您希望获得_第二索引,请按以下步骤推荐:

int first = myString.IndexOf("_");
int second = mystring.Substring(first).IndexOf("_");

this answer Jon Skeet "Index of the nth occurrence of a string?"查询问题{{3}}以获取对此方法的支持。

答案 1 :(得分:5)

如果您不喜欢indexOf,但想要改为加入:

String.Join("_",
   "thumb_634735515600845357tchayat_november_200612.jpg"
   .Split('_')
   .Skip(1)
   .ToArray())

答案 2 :(得分:2)

分割和重新排列后,您可以使用Join方法。

string new_value=String.Join("",your_array);

答案 3 :(得分:0)

您可以使用String.Join,但实际上,它仍然在内部使用循环。

String.Join("_", "thumb_634735515600845357tchayat_november_200612.jpg".Split('_').Skip(1).ToArray());

答案 4 :(得分:0)

  

userRoles是字符串列表

string.Join(“,”,userRoles.ToArray());

答案 5 :(得分:0)

使用正则表达式非常有用。

using System.Text.RegularExpressions;

...

string itemName = "thumb_634735515600845357tchayat_november_200612.jpg";
itemName = Regex.Match(itemName, @"(?<=(_)).*$").Value;

...

&#34;(?&lt; =(_))&#34;看起来在第一个&#34; _&#34;后面。把它想象成一个起点。 &#34;。* $&#34;获取从起点到终点的所有内容。 &#34; $&#34;标志着该行的结束。