我想在给定角色第一次出现之后修剪一个字符串的结尾,在这种情况下是'.'
此字符在字符串中多次出现.
我可以找到与他们都使用的类似的多个问题LastIndexOf(); 这需要第一次出现并删除其余的字符串.
input.Substring(0, input.IndexOf('.'))
Run Code Online (Sandbox Code Playgroud)
说明:
String.IndexOf(char)在字符串中获取第一个char出现的从零开始的索引.例如,对于您的输入,它将是带索引的第四个字符3.String.Substring(startIndex,length)从字符串的开头获取子字符串.使用char的索引作为子字符串的长度,因为索引是从零开始的.注意:
此解决方案的优点(与使用相比Split)是它不会在内存中创建数组,也不会遍历所有字符串搜索拆分字符和提取子字符串.
这个解决方案的缺点是字符串必须包含至少一个你正在寻找的字符(感谢Ivan Chepikov提到它).安全的替代方案看起来像
int index = input.IndexOf('.');
if (index != -1)
substring = input.Substring(0, index);
Run Code Online (Sandbox Code Playgroud)
实际上,有很多选择可以做你想要的:
input.Substring(0, input.IndexOf('.'))input.Split('.')[0]Regex.Match(input, @"[^\.]*").Valuenew string(input.TakeWhile(ch => ch != '.').ToArray())input.SubstringUpTo('.')| 归档时间: |
|
| 查看次数: |
747 次 |
| 最近记录: |