作者:季幸静仪1255_189 | 来源:互联网 | 2023-02-06 05:06
我想在给定角色第一次出现之后修剪一个字符串的结尾,在这种情况下是'.'
此字符在字符串中多次出现.
输入:143.122.124.123
产量:143
我可以找到与他们都使用的类似的多个问题LastIndexOf()
; 这需要第一次出现并删除其余的字符串.
1> Sergey Berez..:
input.Substring(0, input.IndexOf('.'))
说明:
用于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);
实际上,有很多选择可以做你想要的:
快速 input.Substring(0, input.IndexOf('.'))
简约 input.Split('.')[0]
对于正则表达的爱好者 Regex.Match(input, @"[^\.]*").Value
对于LINQ疯子 new string(input.TakeWhile(ch => ch != '.').ToArray())
清洁代码爱好者的扩展方法. input.SubstringUpTo('.')