在字符串中连接大数?

时间:2014-05-28 18:51:28

标签: c# string string-concatenation

所以我要做的是将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>

对于较小的数字,我可以简单地将数字转换为整数,一切看起来都不错。但我认为这些跟踪数量超过了长时间的容量,因此转换不合理。所以基本上我的问题是如何让这个字符串中的“\”斜线消失?

6 个答案:

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

因此,您不需要使用反斜杠。