1

私はこの文字列を持っていますが、 123abc123どうすればこの文字列から整数のみを取得できますか?

たとえば、に変換123abc123123123ます。

私が試したこと:

Integer.Parse(abc)
4

5 に答える 5

4

あなたが使うことができますChar.IsDigit

Dim str = "123abc123"
Dim onlyDigits = New String(str.Where(Function(c) Char.IsDigit(c)).ToArray())
Dim num = Int32.Parse(onlyDigits)
于 2012-11-01T22:58:46.927 に答える
2
    Dim input As String = "123abc456"
    Dim reg As New Regex("[^0-9]")
    input = reg.Replace(input, "")
    Dim output As Integer
    Integer.TryParse(input, output)
于 2012-11-01T23:00:33.413 に答える
2

整数を抽出する正しい方法は、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
于 2012-11-01T22:59:00.820 に答える
0

パターンで正規表現を使用して、\D数字以外の文字を照合して削除し、残りの文字列を解析できます。

Dim input As String = "123abc123"

Dim n As Integer = Int32.Parse(Regex.Replace(input, "\D", ""))
于 2012-11-01T23:12:47.940 に答える
0

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)))))
于 2012-11-02T11:02:38.553 に答える