c# - 如果存在则删除子字符串
问题描述
我有 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
/ 使这个代码工作?
解决方案
尝试添加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
推荐阅读
- javascript - Discord.js RichEmbed 字段值“空”,甚至认为它们不是。消息更新
- excel - Excel Power Query - 通过比较两列来过滤行
- java - 当我有许多 SpringBootTest 类时,如何有效地使用嵌套配置类来注入依赖项
- c# - 在继续处理之前如何等待处理程序的响应?
- scala - 是否有“可选”的van Laarhoven表示
- button - 我如何设置一个按钮在点击、触摸后保持 PRESSED 保持 TOUCHED
- mongodb - Spring Boot + Webflux + MongoDB + 多个搜索条件
- assembly - 汇编语言中的“Project.exe(进程 15848)以代码 0 退出”?
- php - 我该如何解决“试图获取非对象的属性”
- java - 在 Java CDI 拦截器中获取调用者类