繁体   English   中英

c# 将“\\”替换为“\”字符

[英]c# replace from “\\”, to “\” character

我需要从这个角色转换;

"\\\\192.168.2.11\\MKRPRTAL-2.11\\TechnicalDocuments\\TechnicalDocumentsCore\\1000020200-test5_ED_R1.pdf"

至:

"192.168.2.11\\MKRPRTAL-2.11\TechnicalDocuments\TechnicalDocumentsCore\1000020200-test5_ED_R1.pdf"

我试过了

rawPath = response2.TechDocSeriBilgiGetirList[0].PhysicalPathCore.Replace(@"\\", @"\").Replace(@"/", @"\");

(response2.TechDocSeriBilgiGetirList[0].PhysicalPathCore) 等于;

"\\\\192.168.2.11\\MKRPRTAL-2.11\\TechnicalDocuments\\TechnicalDocumentsCore\\1000020200-test5_ED_R1.pdf"

字符串操作是不可变的。 因此,要检查操作后您需要检查 rawPath 的值,而不是您执行这些操作的字符串,因为该值不会改变。

检查此链接:

https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/strings/#:~:text=String%20objects%20are%20immutable%3A%20they,in%20a%20new%20string% 20 对象

您应该考虑到\字符用\\表示,因为反斜杠是一个特殊字符。 例如\n表示换行符。 就像您按下键盘上的回车键一样。

尝试运行这段代码:

System.Console.WriteLine("I am in first line\nAnd i am in the next line");

output 将是:

I am in first line
And i am in the next line

同样的事情也适用于\\ 尝试这个:

System.Console.WriteLine("\\");

它将 output 只有一个反斜杠! ( \ )

我的猜测是您正在使用 Visual Studio 调试器查看变量的值。 尝试使用System.Console.WriteLine方法打印它们。 它将向您显示变量的“真实值”。

您还可以请 append 您发布的那行代码的结果吗?

请尝试以下代码:

string strvar = @"\\\\192.168.2.11\\MKRPRTAL-2.11\\TechnicalDocuments\\TechnicalDocumentsCore\\1000020200-test5_ED_R1.pdf";        
string strrep = strvar.Replace(@"\\\\", @"").Replace(@"\\", @"\");

output 将是:

192.168.2.11\MKRPRTAL-2.11\TechnicalDocuments\TechnicalDocumentsCore\1000020200-test5_ED_R1.pdf

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM