Überprüfen, ob ein string NICHT enthalten einige text
If String1.Contains("something") AndAlso String2.'does not contain something'
'do stuff
End If
Gibt es eine einfache Möglichkeit, dies zu tun? Ich habe versucht mit
If String1.Contains("something") AndAlso Not String2.Contains("something else")
'do stuff
End If
Aber es funktioniert nicht...
- was meinst du, funktioniert es nicht? Schlagen Sie vor, es gibt ein problem mit der Umsetzung von
String.Contains
oderNot
? Was ist der Wert vonString2
ich vermute, dass Sie einen Unterschied in dem Fall. - Sind Sie absichtlich weglassen
Not
aus dem ersten AufrufContains()
? - Auch wenn Zeilenumbrüche beteiligt sind, können Sie laufen in ein Problem mit
LF
vs.CRLF
(oderLFCR
). - Können Sie uns ein Beispiel geben von Zeichenfolgen, die nicht funktionieren und das erwartete Ergebnis?
Du musst angemeldet sein, um einen Kommentar abzugeben.
okay, wir haben einen string,
den Ausdruck
ausgewertet
True
. Der Ausdruckausgewertet
False
. Der Ausdruckausgewertet
True
.Hinweis:
Den Ausdruck
ausgewertet
False
weil"Something"
scheitert eine Geordnete groß-und Kleinschreibung Vergleich mit"something"
. Sofern nicht anders angegeben, sind string-Vergleiche sind Ordinal-und Kleinschreibung unterschieden.Verwenden Sie einfach IndexOf auf den zwei Saiten zu verwenden und dann die if-Ausdrucks
string.IndexOf gibt die Zeichenposition der string, der als argument übergeben. Wenn das argument nicht gefunden in der Quell-string die Rückgabe ist -1, wie in der MSDN docs
IndexOf könnte auch nützlich sein, wenn der Suchbegriff Zeichen enthält, die im anderen Fall als der input-string.
Zum Beispiel, wenn Sie Ihre Eingabe text enthält das Wort "Etwas" (in Großbuchstaben "S") bei der Suche nach dieser Eingabe wird mit dem Begriff "etwas" fehl, beide unter Verwendung Enthält oder Vanille IndexOf.
Aber mit IndexOf können Sie schreiben etwas wie dieses
Wird diese Kraft IndexOf Behandlung von "Etwas" und "etwas", wie Sie der gleichen Zeichenfolge.
Schließlich, Ihre Frage ist unklar, ob Sie möchten, um zu überprüfen, für den fehlenden text nur die zweite Zeichenfolge oder beide Zeichenketten, aber zu wissen, dass IndexOf gibt >= 0, falls der gesuchte string vorhanden ist, dann sollte es ziemlich einfach, ändern Sie die wenn-Bedingung an Ihre Bedürfnisse anpassen.
Contains
aber komplizierter.IndexOf
ist komplexer, weil Sie brauchen, um zu testen das Ergebnis für die Gleichstellung mit-1
. Jedoch, wie Sie geändert haben, auf Ihre Frage zu sagen,IndexOf
hat überladungen, akzeptierenStringComparison
parameter. Ich sehe keine Subjektivität, aber das könnte subjektiv sein.Den obigen code-Ausgänge :
Den Zusatz von
Not
direkt vorString.Contains(blah)
auf jeden Fall bedeutetthe String doesn't contain [blah]
. Ich sehe nicht, nichts falsch mitNot Contains
..Was ist falsch mit Ihrem code ? Oder was ist falsch mit Ihrem Variablen und Ihre tatsächlichen Inhalt ? Oder haben Sie Sie verloren den überblick über Ihre Variablen irgendwo ? Vorsichtig von groß - /Kleinschreibung in Werte-UND Variablen-Namen (auch wenn es bekannt ist VB kümmert sich nicht vermeiden Gehäuse megamix)
Können Sie vbNullString um zu überprüfen, ob der string enthält einen text oder nicht. Versuchen Sie, diesen code: