我有这个字符串:
USERNAME: ADMIN|00004|GI FILE: Lorem ipsum dolor sit amet1.docx DETAIL:There was no endpoint listening at http://localhost:5557/
Run Code Online (Sandbox Code Playgroud)
我想跳到DETAIL:,仅产生:
There was no endpoint listening at http://localhost:5557/
Run Code Online (Sandbox Code Playgroud)
我怎样才能在C#中实现这一目标?
您可以使用字符串操作而不是LINQ:
string substr = str.Substring(str.IndexOf("DETAIL:") + "DETAIL:".Length);
Run Code Online (Sandbox Code Playgroud)
此代码假定字符串始终包含"DETAIL:"为子字符串.如果可能没有,那么你应该处理这种情况.计算成本最低的方法是检查str.IndexOf("DETAIL:")不返回-1.
string substr = null;
int pos = str.IndexOf("DETAIL:");
if (pos >= 0)
substr = str.Substring(pos + "DETAIL:".Length);
else
// Handle missing "DETAIL:"
Run Code Online (Sandbox Code Playgroud)
编辑:如果您绝对想要使用LINQ,您可以将字符串视为字符序列并使用以下(低效)代码:
string keyword = "DETAIL:";
int length = keyword.Length;
char[] chars = str.Select((c, i) => str.Skip(i))
.First(s => s.Take(length).SequenceEqual(keyword))
.Skip(length)
.ToArray();
string substr = new string(chars);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
261 次 |
| 最近记录: |