使用String构建器或字符串类构建带空格的字符串

时间:2011-06-23 15:09:18

标签: c# string substring stringbuilder

我需要创建一个长字符串,大约360个字符,使用不同的值发送给服务。我知道每个部分的位置,我需要能够插入值和空白,直到我到达下一个位置。 以下是我开始的一个例子;每说我需要从位置0开始,下一个值需要进入位置5(abc)。到目前为止,我已经能够连接这样:“1234abc”,但我需要的是“1234 [space] abc [space] [space]”谢谢你你的帮助。

    //sbTrialSpaces
    private void TrialSpaces()
    {

        string str1 = "1234";
        string str2 = "abc";
        string finalStr;//Has to be 10 positions
        //like this "1234 abc  "

    }

7 个答案:

答案 0 :(得分:6)

string.Format("{0,-5}{1,-5}{2,-5}", val1, val2, val3);

这将为每个值创建五个空格,即使它们的宽度小于五个字符。 “ - ”表示值将是左对齐的。

答案 1 :(得分:1)

只需像你建议的那样使用StringBuilder。

StringBuilder sb = new StringBuilder();
sb.Append(str1);
sb.Append(" ");
sb.Append(str2);
sb.Append("  ");
string finalString = sb.ToString();

答案 2 :(得分:0)

var finalStr = ("1234" + " " + "abc").PadRight(10, ' ');

答案 3 :(得分:0)

您可以使用String.Join

String.Join(" ", myStrings);

假设myStrings是IEnumerable of strings

答案 4 :(得分:0)

while (finalStr.Length < 10)
    finalStr += " ";

答案 5 :(得分:0)

我推荐Fixed Length支持的FileHelpers格式。

[FixedLengthRecord()] 
public class Order 
{ 
    [FieldFixedLength(5)] 
    public int OrderId; 

    [FieldFixedLength(30)] 
    [FieldTrim(TrimMode.Right)] 
    public string CustomerName; 

    [FieldFixedLength(10)] 
    public string SKU; 

    [FieldFixedLength(8)] 
    [FieldConverter(typeof(TwoDecimalConverter))] 
    public decimal Price; 

    [FieldFixedLength(8)] 
    [FieldConverter(ConverterKind.Date, "ddMMyyyy")] 
    public DateTime AddedDate; 
}

答案 6 :(得分:0)

string finalStr = str1.PadRight(4,' ') + str2.PadRight(6,' ');

不需要stringbuilder,因为你要一次添加它。

相关问题