0

質問したいだけです: {a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q, という内容の label40.text があります。 r、s、t、u、v、w、x、y、z}とiには、特定の変更が発生するたびに出力を変更するlabel39.textもあります。

私の質問は、このシミュレーションをコードに埋め込むにはどうすればよいですか?

Label39.text = "a" の場合、label40.text "a" の内容は削除され、アルファベットのリストはアルファベット順に残ります。

私のlabel39.textがその値を「RANDOMLY」に変更するときはいつでもそれが起こるようにしたい

例 label39.text = "a,b,c,d,x,z" の場合、label40.text = "e,f,g,h,i,j,k,l,m,n,o,p,q" ,r,s,t,u,v,w,x,y"

これはこれまでの私のコードです

Dim patterns As String
        patterns = Label39.Text
        Dim tobefollow As String
        tobefollow = Label40.Text
        Dim matches As MatchCollection = Regex.Matches(patterns, tobefollow)
        If Regex.IsMatch(patterns, tobefollow) Then
               'this where i will put my code to make my example 
        End If
4

2 に答える 2

1

まず第一に、変数patternstobefollow変数を間違って設定していることに注意してください(他の質問では正しく行っていました)。そのはず:

patterns = Label40.Text
tobefollow = Label39.Text

また、必要なことは、に依存しなくても簡単に達成できることにも注意してくださいRegex。たとえば、次のようにします。

If (Label40.Text.ToLower().Contains(Label39.Text.ToLower())) Then
       'this where i will put my code to make my example 
End If

今回欲しいものに関しては、頼ることができます.Replace.Replace("text to be deleted", "")この手紙を削除します。ただし、コンマも考慮する必要があります。条件内に配置するコード:

Dim origString As String = Label40.Text
Label40.Text = Label40.Text.ToLower().Replace(Label39.Text.ToLower() & ",", "")
If (origString = Label40.Text) Then
    'It means that it does not have any comma, that is, refers to the last letter
    Label40.Text = Label40.Text.ToLower().Replace("," & Label39.Text.ToLower(), "")
End If
于 2013-07-21T16:15:57.463 に答える
0

別の答えとして、String.SplitおよびString.Joinメソッドを使用して文字列を個々の文字に分解し、それらをリストから削除して結合し直すこともできます。これを行う関数は次のとおりです。

Private Function RemoveLetters(str1 As String, str2 As String) As String
    Dim sep() As String = {","}
    Dim list1 As List(Of String) = str1.Split(sep, StringSplitOptions.None).ToList
    Dim list2 As List(Of String) = str2.Split(sep, StringSplitOptions.None).ToList

    For Each s As String In list2
        list1.Remove(s)
    Next
    Return String.Join(",", list1)
End Function

次のように使用します。

Label40.Text = RemoveLetters(Label40.Text, Label39.Text)
于 2013-07-21T16:42:18.477 に答える