[英]Removing x-amount of letters in a string in VB.net
因此,在數據庫中,我具有以下值:
“H-000000107”
我需要刪除vb.net中字符串中除107末尾的所有內容,問題是,有時最后一個值可以更長,例如。
“H-000001207”
在這種情況下,我需要從字符串中返回1207。 因此,實際代碼(1207)前面的字母和字符數量並不總是相同。 任何幫助對此表示贊賞!
這應該針對H-
dim a as string = "H-000000107"
dim b as string = "H-000001207"
dim newval = -int(a.ToString.Split("H")(1)).tostring 'output 107
dim newval2 = -int(b.ToString.Split("H")(1)).tostring 'output 1207
嘗試這個,
Dim xString = "H-000001207"
Dim xResult = string.empty
for i as integer = 0 to xString.length -1
if (xString.chars(i) = "H" orelse _
xString.chars(i) = "-" orelse _
(xString.chars(i) = "0" andalso not xResult = string.empty)) then
continue for
else
xResult &= xString.chars(i)
end if
next
MsgBox(val(xResult))
或者可能是一個簡單的解決方案,
Dim xString = "H-000001207"
dim xRes = String.Empty
if xString.length > 3 then
xRes = val(xString.substring(2, xString.length-2))
end if
提示(請注意,如果傳遞“ H-”之類的字,結果將為空字符串):
string result="";
string words = "H-000001207";
string[] split = words.Split(new Char[] { '-'});
if (split.GetUpperBound(0) == 1)
{
result = split[1].TrimStart('0');
}
else
result = "Error-Invalid format.";
Console.WriteLine(result);//is 1207
您可以使用Regex輕松完成此操作:
Dim pattern = "[1-9]\d*$"
Dim input = "H-000001207"
Dim result = Regex.Match(input, pattern)
Console.WriteLine(result.Value) '1207
模式說明:返回字符串($)末尾的值,該字符串以零以外的數字([1-9])開頭,后跟0或多個數字(\\ d *)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.