首页 > 解决方案 > 如果存在则删除子字符串

问题描述

我有 3 个可能的输入案例

string input = "";        // expected result: ""
string input = "bar-foo"; // expected result: "foo"
string input = "foo";     // expected result: "foo"

- 如果存在,我必须删除所有内容,包括第一个分隔符 char 。

工作方式:

string output = input.Split('-').LastOrDefault();

我想在没有Split()- 我不工作的方法的情况下解决这个问题:

string output = input.Substring(input.IndexOf('-') );

我怎样才能处理IndexOutOfRangeException/ 使这个代码工作?

标签: c#stringsubstring

解决方案


尝试添加1

string output = input.Substring(input.LastIndexOf('-') + 1);

如果 , 中没有-,则input返回LastIndexOf-1因此您将拥有整个 string

我假设您正在寻找input's后缀,这就是我提出的原因LastIndexOf

"123-456-789" -> "789"

如果要切断前缀

"123-456-789" -> "456-789"

LastIndexOf改成IndexOf


推荐阅读