我試圖讓一個項目如WO123000以WO-123000的形式出現。這是代碼,但它不適合我。用String.Format添加一個「 - 」VB.Net
WorkOrder = String.Format("{0:##-######}", Trim(WorkOrderNum))
這是WorkOrderNum是WO123000的地方。此錯誤源自VB6.Format遷移問題。
我試圖讓一個項目如WO123000以WO-123000的形式出現。這是代碼,但它不適合我。用String.Format添加一個「 - 」VB.Net
WorkOrder = String.Format("{0:##-######}", Trim(WorkOrderNum))
這是WorkOrderNum是WO123000的地方。此錯誤源自VB6.Format遷移問題。
如果字符串的長度保持不變:
Dim WorkOrderNum = "WO123000"
Dim testStr As String = String.Format("{0}-{1}", WorkOrderNum.SubString(0, 2), WorkOrderNum.SubString(2, 6))
Console.WriteLine(testStr)
'outputs WO-123000
雖然我敢肯定有這樣做的更好的辦法,其中應包括錯誤處理等,這是隻是一個演示!
我假設WO代表'工作訂單'。這表明每個工單的前兩個字母都是WO。這意味着,你可以做以下的,而不是格式:
Dim WorkOrderNum As String = "WO123000"
Dim OutputOrderNum As String = WorkOrderNum.Replace("WO", "WO-")
希望這有助於,
Rodit
但是,它不一定是。如果他們想要,它可能是11111111 – user2311799
然後它就像格式化一個隨機字符串@ user2311799 – rodit
如果您不需要格式本身的數量,下面應該給你你想要什麼:
WorkOrder = Trim(WorkOrderNum).Insert(2, "-")
如果輸入的變化很大(如您的評論指出它),那麼你一定想先抽取號碼,然後格式化:
string WorkOrder = "abc123";
int woNum;
if (int.TryParse(System.Text.RegularExpressions.Regex.Match(WorkOrder, @"\d+").Value, out woNum))
{
return String.Format("WO-{0:00000}", woNum);
}
爲什麼.NET會自動將字符串「WO123000」分開? –
我只是想讓字符串在第一個字符後面加一個破折號。 – user2311799
它們可以是任何字符。不只是前兩個字母。 – user2311799