我有一个输入字符串,如下所示:
thumb_634735515600845357tchayat_november_200612.jpg
我想要做的是首先拆分此字符串_
。然后将得到的标记放在位置1到n并加入它们。
具体来说,就我的样本输入而言,这是我想要的输出。如您所见,thumb_
已从字符串的前面删除:
634735515600845357tchayat_november_200612.jpg
我知道怎么做分裂。但接下来我该如何进行加入步骤呢?我确实意识到我可以使用for
循环来进行连接。但有更好的方法吗?我不能使用子字符串方法来执行连接步骤,因为我在thumb_
之前有数据。
最后,请注意_
后面的thumb
字符始终是_
的第一个实例。
答案 0 :(得分:11)
由于拇指之后的_
始终是第一个实例,因此Substring
与IndexOf
一起完全可行。
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;标志着该行的结束。