C# 按最后一个分隔符拆分字符串
我拥有的是一个巨大的文本文件,其中包含由C# 按最后一个分隔符拆分字符串,c#,C#,我拥有的是一个巨大的文本文件,其中包含由\拆分的一串字符串。我的问题是可能有5个\或4个\或3个\ 我需要做的是拉最后一个\,不管有多少个。感谢您的帮助 示例: I\need\this I\want\line\this Hello\give\me\all\this 我需要这个 我想要这个 你好\give\me\all\this 例如,我需要这个这个词,但显然不仅仅是这个这个几乎忘记了这个词(尽管它有点厚脸皮): string myString = inputString.Split('\\').
\
拆分的一串字符串。我的问题是可能有5个\
或4个\
或3个\
我需要做的是拉最后一个\
,不管有多少个。感谢您的帮助
示例:
I\need\this
I\want\line\this
Hello\give\me\all\this
我需要这个
我想要这个
你好\give\me\all\this
例如,我需要这个
这个词,但显然不仅仅是这个
这个几乎忘记了这个词(尽管它有点厚脸皮):
string myString = inputString.Split('\\').Last();
string result=Path.GetFilename(输入)
+1:需要注意的是,如果(!string.IsNullOrEmpty(inputString))中没有“\”,那么您需要检查整个字符串:)空检查是否正确,应该始终检查这一点。LastIndexOf(..)+1的好处是,对于找不到的字符,LastIndexOf(..)将返回-1,因此最终结果是子字符串从位置0(字符串的开头)获取,因此返回整个字符串。在所有方面都同意,但如果没有“\”则要求返回一个空字符串。我只是说,人们应该检查哪些是必需的行为。.网络规则34-如果它存在,就有它的LINQ。:-)可能应该是LastOrDefault()
,以获得额外的安全性?我本以为在最坏的情况下(inputstring==string.Empty),inputstring.Split('\\')
仍然会返回一个字符串数组,当然==string.EmptyGive不带“\”的字符串,函数应该返回整个字符串还是空字符串?e、 g.如果它返回“Hello”或“Hello”,则将其传递为“Hello”?这并不提供问题的答案。若要批评或要求作者澄清,请在其帖子下方留下评论。由于质量低下,该评论已被标记。事实上,它只在Windows上工作。(我意识到问题是关于C#,它通常在Windows环境中使用,但它可以通过Mono移植到其他平台。)我承认它只在Windows上工作这一事实可能是相关的,但这并不是声称它质量低的正当理由。大多数答案在某些情况下不起作用。事实上,OP没有解释他为什么要这样做,完全有可能提取一个文件名正是他想要做的,当然这对于另一个正在为此寻找答案的读者来说是非常理想的。
string last = inputString.Substring(inputString.LastIndexOf('\\') + 1);