我有一个看起来像这样的字符串:"texthere^D123456_02".但我想要我的结果D123456.
这是我到目前为止所做的:
if (name.Contains("_"))
{
name = name.Substring(0, name.LastIndexOf('_'));
}
Run Code Online (Sandbox Code Playgroud)
有了这个我至少删除了_02,但如果我尝试相同的方式^然后我总是回来texthere,即使我使用name.IndexOf("^")
我也尝试只检查^,至少得到结果:D123456_02但仍然是相同的结果.
我甚至尝试过name.Replace("^"然后使用之前使用的子串方式.但结果再次保持不变.
texthere并不总是相同的长度,所以是不可能.Remove()的.
我究竟做错了什么?
谢谢
通话时Substring你不应该从0开始,而是从找到的索引开始:
String name = "texthere^D123456_02";
int indexTo = name.LastIndexOf('_');
if (indexTo < 0)
indexTo = name.Length;
int indexFrom = name.LastIndexOf('^', indexTo - 1);
if (indexFrom >= 0)
name = name.Substring(indexFrom + 1, indexTo - indexFrom - 1);
Run Code Online (Sandbox Code Playgroud)
string s = "texthere^D123456_02";
string result= s.Substring(s.IndexOf("^") + 1);//Remove all before
result = result.Remove(result.IndexOf("_"));//Remove all after
Run Code Online (Sandbox Code Playgroud)
使用String.Split方法:
var split1 = name.Split('^')[1];
var yourText = split1.Split('_')[0];
Run Code Online (Sandbox Code Playgroud)
或者你可以使用 RegExp 来实现基本相同。
| 归档时间: |
|
| 查看次数: |
7646 次 |
| 最近记录: |