簡體   English   中英

在VB.net中刪除字符串中x字母的數量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM