0

来週のvb.net試験に備えて、過去の試験問題の作成に忙しくしています。私が苦労している質問は次のとおりです。

アルファベット文字と特殊文字の長い文字列を取り込んで、アルファベット文字をstring1に抽出し、特殊文字をstring2に抽出します。

だから文字列hello:// thisismystring !? 次のように表示する必要があります

string1 = hellothisismystring
string2 = ://!?

私の質問は、文字列から文字を抽出して変数に格納するにはどうすればよいですか?

4

4 に答える 4

3

Unicodeに対応し、クリーンで簡単な1つの方法。

Imports System.Text

Module Module1

    Sub Main()
        Dim sValue As String = "hello://thisismystring!?"
        Dim a As New StringBuilder
        Dim b As New StringBuilder
        For Each c As Char In sValue
            If Char.IsLetter(c) Then
                a.Append(c)
            Else
                b.Append(c)
            End If
        Next
        Dim s1 As String = a.ToString()
        Dim s2 As String = b.ToString()
    End Sub

End Module
于 2012-11-06T07:07:03.280 に答える
0

その文字列の文字をループし、ASCIIコードを使用して、現在の文字がアルファベットかどうかを判断できます。はい-> string1の場合、いいえ->string2の場合。幸運を。

于 2012-11-06T06:32:04.387 に答える
0

これを行う1つの方法があります

    Dim allText As String = "Hello139874098@#4this204985"
    Dim onlyLetters As String = ""
    Dim nonLetters As String = ""
    For i = 0 To allText.Length - 1
        Dim c As String = allText.Substring(i, 1)
        If c.ToUpper >= "A" And c.ToUpper <= "Z" Then
            onlyLetters &= c
        Else
            nonLetters &= c
        End If
    Next
    MsgBox("Letters are " & onlyLetters)
    MsgBox("Non-Letters are " & nonLetters)
于 2012-11-06T06:51:44.633 に答える
0

私はこれを使用します:

    Dim SearchString = "hello://thisismystring!?"
    Dim ToFind = "://!?"


    Dim ResultSpecial As String = ""
    Dim ResultNormal As String = ""

    Dim ChrList As New List(Of Char)

    For Each c In ToFind
        ChrList.Add(c)
    Next

    For i = 0 To SearchString.Length - 1
        Dim c = SearchString(i)
        If ChrList.Contains(c) = True Then
            ResultSpecial = ResultSpecial & c
        Else
            ResultNormal = ResultNormal & c
        End If
    Next

    Debug.Print("Resultnormal: " & ResultNormal)
    Debug.Print("ResultSpecial: " & ResultSpecial)

必要なすべての文字を「ToFind」に書き込む必要があります。正規表現はさらにうまく機能しますが、面倒な場合があります。

リワークバージョン

Module Module1

    Sub Main()
        Dim SearchString = "hello://thisismystring!?"
        Dim ToFind = "://!?"

        Dim ResultSpecial As String = ""
        Dim ResultNormal As String = ""

        For Each c In SearchString
            If ToFind.Contains(c) Then
                ResultSpecial = ResultSpecial + c
            Else
                ResultNormal = ResultNormal + c
            End If
        Next

        Debug.WriteLine(ResultNormal, "Resultnormal")
        Debug.WriteLine(ResultSpecial, "ResultSpecial")
    End Sub

End Module
于 2012-11-06T06:58:12.273 に答える