我有以下代码:
sDocType = pqReq.Substring(0, pqReq.IndexOf(@"\t"));
字符串 pqReq 如下所示:“CSTrlsEN \ t001 \ t \\ sgprt \ Projects2 \ t001 \ tCSTrl”。但即使我可以清楚地看到字符串中的t\
,pqReq.IndexOf(@"\t")
返回-1,因此会抛出错误。
这样做的正确方法是什么?我不想将字符串 pqReq 拆分为以后的代码。
答案 0 :(得分:2)
使用 \\t
代替\t
。 \t
被视为制表符。 sDocType = pqReq.Substring(0,pqReq.IndexOf(@“\ t”));
由于\t
,我没有注意到@
是文字的。但是你的输入字符串是文字字符串吗?如果没有,请在值@
之前放置pqReq
。
string pqReq = @"CSTrlsEN\t001\t\\sgprt\Projects2\t001\tCSTrl";
int i = pqReq.IndexOf(@"\t");
//i = 8
答案 1 :(得分:2)
我无法重现此问题。以下代码(.NET Fiddle here):
var pqReq=@"CSTrlsEN\t001\t\\sgprt\Projects2\t001\tCSTrl";
var idx=pqReq.IndexOf(@"\t");
Console.WriteLine(idx);
var sDocType = pqReq.Substring(0, idx);
Console.WriteLine(sDocType);
产生
8
CSTrlsEN
您是否忘记使用@
前缀pqReq?