首先拆分,然后连接字符串的子集
本文关键字:字符串 子集 连接 然后 拆分 | 更新日期: 2023-09-27 18:37:11
我有一个输入字符串,如下所示:
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());
原始帖子发表于 2015 年 8 月 31 日。我唯一更改的是标记语法,因为原始语法是错误的。
使用正则表达式可能非常有帮助。
using System.Text.RegularExpressions;
string itemName = "thumb_634735515600845357tchayat_november_200612.jpg";
itemName = Regex.Match(itemName, @"(?<=(_)).*$").Value;
"(?<=(_))"位于第一个"_"后面。把它当作一个起点。".*$"获取从起点到行尾的所有内容。"$"标记行尾。