首先拆分然后加入字符串的子集
我有一个输入字符串如下:
thumb_634735515600845357tchayat_november_200612.jpg
我想要做的是首先用_
分割这个字符串。 然后将得到的标记放在1到n的位置并加入它们。
具体来说,就我的样本输入而言,这是我想要的输出。 如您所见, thumb_
已从字符串的前面删除:
634735515600845357tchayat_november_200612.jpg
我知道怎么做分裂。 但接下来我如何进行加入步骤呢? 我意识到我可以使用for
循环来进行连接。 但有更好的方法吗? 我不能使用子字符串方法来执行连接步骤,因为我在thumb_
之前有数据。
最后,请注意thumb
的_
字符始终是_
的第一个实例。
由于拇指之后的_
始终是第一个实例,因此Substring
应该与IndexOf
一起完全可行。
string newString = myString.Substring(myString.IndexOf("_") + 1);
这应该从紧跟在_
字符的第一个实例之后的字符开始的子字符串。
如果你想得到_
的第二个索引,这就是我的建议:
int first = myString.IndexOf("_"); int second = mystring.Substring(first).IndexOf("_");
请参阅Jon Skeet对“第n次出现的字符串索引?” 这一问题的回答 。 支持这种方法。
如果您不喜欢indexOf,但希望加入:
String.Join("_", "thumb_634735515600845357tchayat_november_200612.jpg" .Split('_') .Skip(1) .ToArray())
拆分和重新排列后,您可以使用Join方法。
string new_value=String.Join("",your_array);
你可以使用String.Join
,但实际上它仍然使用一个循环。
String.Join("_", "thumb_634735515600845357tchayat_november_200612.jpg".Split('_').Skip(1).ToArray());
userRoles是字符串列表
string.Join(“,”,userRoles.ToArray());
使用正则表达式非常有用。
using System.Text.RegularExpressions; ... string itemName = "thumb_634735515600845357tchayat_november_200612.jpg"; itemName = Regex.Match(itemName, @"(?<=(_)).*$").Value; ...
“(?<=(_))”看起来在第一个“_”后面。 把它想象成一个起点。 “。* $”获取从起点到终点的所有内容。 “$”标志着该行的结束。