2011-06-23 87 views
0

我需要使用我發送給服務的不同值創建一個長字符串,約360個字符。我知道每個部分的職位,我需要能夠插入值和空白,直到我到達下一個位置。 以下只是我開始的一個例子;每說我需要從位置0開始,下一個值需要進入位置5(abc)。到目前爲止,我已經能夠連接像這樣:「1234abc」,但我需要的是「1234 [空間] abc [空間] [空間]」感謝您的幫助。使用字符串構建器或字符串類的空格構建字符串

//sbTrialSpaces 
    private void TrialSpaces() 
    { 

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

    } 

回答

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

這將使五個空格的每個值,即使他們是少於五個字符寬。 「 - 」表示這些值將被左對齊。

+0

謝謝大家爲您的快速回復。我只是嘗試了這個建議並滿足了我的需求。當我有機會時,我肯定會嘗試其他的迴應,但現在我可以繼續前進。你們都有美好的一天! – Tony

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

只需使用StringBuilder喜歡你的建議。

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

可以使用的string.join

String.Join(" ", myStrings); 

假設myStrings被串

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

的IEnumerable我建議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; 
} 
0
string finalStr = str1.PadRight(4,' ') + str2.PadRight(6,' '); 

沒有必要爲一個StringBuilder,因爲你一次添加了這一切。