我有一个这样的字符串: “/审计报告” 它被分配给变量rep。 如果我输入
var r = rep.SysName.Remove(1, 1);
它返回“/ uditReport”而不是所需的“AuditReport”, 即它不会删除斜线。我怎么能把它删除?
答案 0 :(得分:17)
.NET中的字符串索引从零开始。 Remove
的文档指出第一个参数是“从零开始删除字符的位置”。
string r = rep.SysName.Remove(0, 1);
或者,在我看来,使用Substring
更具可读性:
string r = rep.SysName.Substring(1);
或者,您可以使用TrimStart
,具体取决于您的要求。 (但请注意,如果您的字符串以多个连续斜杠开头,那么TrimStart
将删除所有字符串。)
string r = rep.SysName.TrimStart('/');
答案 1 :(得分:6)
尝试:
var r = rep.SysName.Remove(0, 1);
答案 2 :(得分:4)
你需要:
var r = rep.SysName.Remove(0, 1);
第一个参数是开头,第二个参数是要删除的字符数。 (1,1)将删除第二个字符,而不是第一个字符。
答案 3 :(得分:2)
索引从0开始,因此您要删除第二个字符。相反,尝试
var r = rep.SysName.Remove(0, 1);
答案 4 :(得分:0)
"/AuditReport".Replace("/","")
是什么?
答案 5 :(得分:0)
.NET中的字符串索引基于零,因此:
string r = rep.SysName.Remove(0, 1);
您也可以使用:
string r = rep.SysName.Substring(1);
答案 6 :(得分:0)
你必须写var r = rep.SysName.Remove(0, 1);
。我猜你有一个VisualBasic背景(像我:-)),C#中的数组,字符串等以一些其他语言的索引0
而不是1
开头。
答案 7 :(得分:0)
如果您正在处理Uri
,则可以通过以下方式进行操作:
var route = uri.GetComponents(UriComponents.Path, UriFormat.UriEscaped);
它将返回例如api/report
而不是/api/report
。