私はこの文字列を持っていますが、 123abc123
どうすればこの文字列から整数のみを取得できますか?
たとえば、に変換123abc123
し123123
ます。
私が試したこと:
Integer.Parse(abc)
あなたが使うことができますChar.IsDigit
Dim str = "123abc123"
Dim onlyDigits = New String(str.Where(Function(c) Char.IsDigit(c)).ToArray())
Dim num = Int32.Parse(onlyDigits)
Dim input As String = "123abc456"
Dim reg As New Regex("[^0-9]")
input = reg.Replace(input, "")
Dim output As Integer
Integer.TryParse(input, output)
整数を抽出する正しい方法は、isNumbric
関数を使用することです。
Dim str As String = "123abc123"
Dim Res As String
For Each c As Char In str
If IsNumeric(c) Then
Res = Res & c
End If
Next
MessageBox.Show(Res)
別の方法:
Private Shared Function GetIntOnly(ByVal value As String) As Integer
Dim returnVal As String = String.Empty
Dim collection As MatchCollection = Regex.Matches(value, "\d+")
For Each m As Match In collection
returnVal += m.ToString()
Next
Return Convert.ToInt32(returnVal)
End Function
パターンで正規表現を使用して、\D
数字以外の文字を照合して削除し、残りの文字列を解析できます。
Dim input As String = "123abc123"
Dim n As Integer = Int32.Parse(Regex.Replace(input, "\D", ""))
FindAll
必要なものを抽出するために使用することもできます。Val
空の文字列を処理する関数も検討する必要があります。
Dim str As String = "123abc123"
Dim i As Integer = Integer.Parse(Val(New String(Array.FindAll(str.ToArray, Function(c) "0123456789".Contains(c)))))