让所有的字符在最后一个短划线的右侧
我有以下几点:
string test = "9586-202-10072"
我将如何获得最后的所有字符-
如10072.字符的数量总是不同于最后一个破折号的右边。
如何才能做到这一点?
你可以得到最后的位置-
用str.LastIndexOf('-')
。 所以下一步是显而易见的:
var result = str.Substring(str.LastIndexOf('-') + 1);
更正 :
正如下面的Brian所述,在没有破折号的string上使用它将导致返回相同的string。
你可以使用LINQ,并保存自己的显式parsing:
string test = "9586-202-10072"; string lastFragment = test.Split('-').Last(); Console.WriteLine(lastFragment);
string tail = test.Substring(test.LastIndexOf('-') + 1);
我可以看到这个post被浏览了46000多次。 我敢打赌,46000中的很多人都问这个问题只是因为他们只是想要文件名…而这些答案可以是一个兔子洞,如果你不能让你的子string逐字使用at符号。 这导致了一个兔子洞,如果真正的问题如何得到文件名是一个简单的答案。
这里应该提到。 即使它不是确切的答案。
result = Path.GetFileName(fileName); 请参阅https://msdn.microsoft.com/en-us/library/system.io.path.getfilename(v=vs.110).aspx
请参阅String.lastIndexOf方法
test.Substring(test.LastIndexOf("-"))
string atest = "9586-202-10072"; int indexOfHyphen = atest.LastIndexOf("-"); if (indexOfHyphen >= 0) { string contentAfterLastHyphen = atest.Substring(indexOfHyphen + 1); Console.WriteLine(contentAfterLastHyphen ); }
YourString.SubString(YourString.LastIndexOf("-"));