从字符串开头删除几个字符的最佳方法是什么?
sName = "IMG: Testing again"
sName = "TXT: This is amazing"
所以删除IMG:和TXT ..等......
所以我能拥有这个吗?
sName = "Testing again"
sName = "This is amazing"
答案 0 :(得分:1)
好吧,如果它总是会有四个字符你可以做。 sName = sName.Substring(5)
答案 1 :(得分:1)
我个人喜欢简单的regular expression来完成这样的任务。
var result = Regex.Replace(input, @"^[A-Z]+:\s*", "");
这与它将删除的内容中的其他方法略有不同,因此这里解释匹配(也请参考regular expression quick reference)。
^ # anchor match to start of input
[A-Z]+ # match one or more capital English-alphabet characters
: # match a colon
\s* # match zero or more spaces
因此,这种方法也匹配像“HELLOWORLDILOVEYOU:说弗雷德”这样的输入,并在“TXT:Wut?”中摆脱额外的前导空格。
答案 2 :(得分:0)
假设您始终使用格式{TYPE}: {Text}
,并且您想要{Text}
,请使用此字段:
int index = sName.IndexOf(':') + 2; // two: one for the colon and one for the space
sName = sName.Substring(index);
当然,这可以放在一行;为了清楚起见,我把它分成两部分。
您还可以为一般情况制作扩展方法:
public static string SubstringAfter(this string str, string sequence)
{
int index = str.IndexOf(sequence);
if (index > -1)
{
return str.Substring(str.IndexOf(sequence) + sequence.Length);
}
return str;
}
这可以让你这样做:
sName = sName.SubstringAfter(": ");
答案 3 :(得分:0)
sName = sName.Remove(0,5); //simple but not perfect way
编辑:
sName= sName.Split(':')[1]; //For splitting by ':'
sName = sName.Remove(0,1); //For the space, or use sName.Trim();
答案 4 :(得分:0)
如果是固定格式,我建议你去拆分。看代码。拆分后,第一个索引将有你的项目。
var sName = sName.Split( new char[] {':'})[1].Trim();
答案 5 :(得分:0)
您可以使用
sName = sName.SubString(4, sname.Length)
它将是从字符串的第4个位置到最后位置的子字符串。