如何在C#中删除字符串中的斜杠

时间:2011-11-25 08:19:55

标签: c# string slash

我有一个这样的字符串: “/审计报告” 它被分配给变量rep。 如果我输入

var r = rep.SysName.Remove(1, 1);

它返回“/ uditReport”而不是所需的“AuditReport”, 即它不会删除斜线。我怎么能把它删除?

8 个答案:

答案 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