所以我要做的是将USPS跟踪号连接成一个字符串。并且最终字符串必须在引号中包含跟踪号。例如,当我打印字符串时,它应该如下所示:
<tracking userID=ABC trackingID="910236783468367367346738" deliveryNotification=false>
我有一个跟踪号列表作为数组中的字符串(trackingIDs
),我使用循环为每个跟踪ID创建一个上面的字符串。
string finalString = null;
for(int i = 0; i < trackingIDs.length; i++)
{
finalString = "<tracking userID=ABC trackingID=\"" + trackingIDs[i] + "\" deliveryNotification=false>";
Console.WriteLine(finalString);
}
此代码生成:
<tracking userID=ABC trackingID=\"910236783468367367346738\" deliveryNotification=false>
对于较小的数字,我可以简单地将数字转换为整数,一切看起来都不错。但我认为这些跟踪数量超过了长时间的容量,因此转换不合理。所以基本上我的问题是如何让这个字符串中的“\”斜线消失?
答案 0 :(得分:2)
根据您的代码,它应该正确转义。我认为你可能只是在调试器中查看它,它会逃脱引用以获得观看乐趣。
您可以使用\
转义字符格式化字符串的另一种方法如下:
finalString = string.Format(@"<tracking userID=ABC trackingID=""{0}"" deliveryNotification=false>", trackingIDs[i]);
另外,您可能只使用单引号。
finalString = string.Format(@"<tracking userID=ABC trackingID='{0}' deliveryNotification=false>", trackingIDs[i]);
我不建议使用数字类型存储您的跟踪号。
答案 1 :(得分:1)
您的代码中没有任何问题,因为它是正确的。您正在看到这一点,因为您将鼠标悬停在Visual Studio中显示转义字符的变量上。
答案 2 :(得分:0)
这没什么不对。使用你的代码(和大写长度),我得到了这个。
var trackingIDs = new string[]{"910236783468367367346738"};
string finalString = null;
for(int i = 0; i < trackingIDs.Length; i++)
{
finalString = "<tracking userID=ABC trackingID=\"" + trackingIDs[i] + "\" deliveryNotification=false>";
Console.WriteLine(finalString);
}
输出:
<tracking userID=ABC trackingID="910236783468367367346738" deliveryNotification=false>
答案 3 :(得分:0)
这个怎么样?
string[] trackingIDs = {"910236783468367367346738","810236783468367367346738","710236783468367367346738"};
string finalString = null;
for(int i = 0; i < trackingIDs.Length; i++)
{
finalString = "<tracking userID=ABC trackingID=\"" + trackingIDs[i] + "\" deliveryNotification=false>";
Console.WriteLine(finalString);
}
这是我得到的输出:
<tracking userID=ABC trackingID="910236783468367367346738" deliveryNotification=false>
<tracking userID=ABC trackingID="810236783468367367346738" deliveryNotification=false>
<tracking userID=ABC trackingID="710236783468367367346738" deliveryNotification=false>
答案 4 :(得分:0)
尝试不同的方法。如果您首先打破UPS跟踪ID并将其转换为List,然后旋转这些ID并使用string.Format()构建最终字符串,该怎么办? 在你的例子中,我认为你没有正确地逃避引号......
像这样。
var trackingId = "123456789098888888893233432423423";
var finalString = string.Format("<tracking userID=ABC trackingID=\"{0}\" deliveryNotification=false>", trackingId);
答案 5 :(得分:-2)
在C#中,使用另一个引用双引号:
请参阅此SO quentsion:Can I escape a double quote in a verbatim string literal?
因此,您不需要使用反斜杠。