我想替換drpFPortofCall.SelectedValue.ToString. 例如,給定字串,AEJEA~12060我希望結果為AEJEA. 給定字串INNSA~12430,我希望結果是INNSA唯一的。我怎樣才能做到這一點?
我嘗試了以下但無法通過。
Dim frmport As String = drpFPortofCall.SelectedValue.ToString
frmport = frmport.Replace("~", "")
uj5u.com熱心網友回復:
簡單易行
使用IndexOf你將取代其余的
Dim frmport As String = drpFPortofCall.SelectedValue.ToString()
Dim value as String = frmport.Substring(0, frmport.IndexOf("~"))
uj5u.com熱心網友回復:
您可以使用正則運算式提取所有內容,直到“~”。
這是一個例子。還有一把小提琴。
Dim foo = "AEJEA~12060"
Dim match = Regex.Match(foo,". ?(?=~)")
Dim x = match.Value
Console.WriteLine("x = " & x)
編輯:您將需要此匯入:
Imports System.Text.RegularExpressions
uj5u.com熱心網友回復:
首先,我很確定drpFPortofCall.SelectedValue它已經是一個字串(你所擁有的可能不是ListControl直接的,但它幾乎肯定會從它繼承這個屬性)。也就是說,.ToString()從那里進一步呼叫充其量是愚蠢的,最壞的情況是浪費。
從那里繼續前進,您似乎想要一切都達到~. 一個選項如下所示:
Dim frmport As String = drpFPortofCall.SelectedValue.Split("~"c)(0)
但這可能會更慢。使用更多代碼,我們可以這樣做,這可能會稍微快一點:
Dim endIndex As Integer = drpFPortofCall.SelectedValue.IndexOf("~"c)
Dim frmPort As String = drpFPortofCall.SelectedValue.SubString(0, endIndex)
...但除非您需要在成千上萬的輸入上運行它,否則您不會注意到差異。
最后,我們擁有的兩個樣本在結構上非常相似,甚至每個點的字符數。如果您可以確定您的所有資料都完全遵循這種格式,我們可以做得更好:
Dim frmPort As String = drpFPortofCall.SelectedValue.SubString(0, 5)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/503739.html
上一篇:從同步函式呼叫異步函式導致x.result掛起...用擴展修復它?
下一篇:沒有linqvb.net的組復制
