Finden Sie den genauen Text in der Liste<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ich arbeite mit Listen und Listenfunktionen und habe Schwierigkeiten herauszufinden, wie ich den genauen Text in einer Liste finden kann.In der folgenden Namensliste möchte ich beispielsweise eine weitere Liste erstellen, wenn die Namensliste genau den in der Variablen „Name“ angegebenen Text enthält. Die Funktion „Contains“ ruft jedoch nicht nur den in der Variablen „name“ angegebenen Wert ab. Irgendwelche Ideen, warum bei der Erstellung der act_nameList zusätzlich zu dem, was angefordert wurde (Jane_2), Jane gefunden wird, Jane_3 jedoch nicht?Das scheint ein seltsames Verhalten zu sein und ich kann nicht herausfinden, wie ich eine Liste erstellen kann, die nur den im Variablennamen angegebenen Text enthält.Alle Ideen oder Vorschläge wären willkommen.
name = "Jane_2";
nameList = {„Jane“, „Louise“, „Katie“, „Jane_2“, „Becky“, „Jane_3“};
act_nameList = {};
For( i = 1, i <= N Items( nameList ), i++,
If( Enthält( name, nameList ),
Einfügen in( act_nameList, nameList )
)
);
Show( act_nameList );
Betreff: Genauen Text in der Liste findenNun ja,
Was für ein Idiot ich war.Jetzt verstehe ich vollkommen, warum ich die Ergebnisse erzielt habe, die ich erzielt habe.Ich habe der Syntax der Funktion „Contains“ nicht genügend Aufmerksamkeit geschenkt.Vielen Dank, dass Sie mit mir daran gearbeitet haben.
Betreff: Genauen Text in der Liste findenSie müssten die Argumente in „contains“ umkehren, um dieses Ergebnis zu erhalten.Das erste Argument für „contains“ ist der „Haupt“-String und das zweite Argument ist der gesuchte Teilstring.
Hier ist Ihr Code mit umgekehrten Argumenten, sodass Sie das in Ihrer letzten Antwort erwähnte Ergebnis erhalten.
Name = „Jane“ ;
Namensliste = { „Jane“ , „Louise“ , „Katie“ , „Jane_2“ , „Becky“ , „Jane_3“ } ;
act_nameList = {} ;
Für ( ich = 1 , ich <= N Artikel ( Namensliste ) , ich ++,
Wenn ( Enthält ( Namensliste [ ich ] , Name ) ,
Einfügen in ( act_nameList , Namensliste [ ich ] )
)
) ;
Zeigen ( act_nameList ) ;
Betreff: Genauen Text in der Liste findenOkay,
Ich bin mir noch nicht sicher, ob ich die Subtilität der Aussage verstehe. Zum Beispiel, wenn
name = "Jane" warum sollte act_nameList = {"Jane", "Jane_2", "Jane_3"} nicht funktionieren, da Jane jeweils ein Teilstring ist?
Betreff: Genauen Text in der Liste findenDie Funktion „Contains“ funktioniert wie angekündigt.
Die Aussage enthält("Jane_2", "Jane") gibt true zurück, weil Jane ist ein Teilstring von Jane_2
enthält("Jane_2", "Jane_2") gibt true zurück, auch weil Jane_2 ist ein Teilstring von Jane_2
enthält("Jane_2", "Jane_3") gibt false zurück, da Jane_3 nicht in Jane_2 enthalten ist.
Ich denke, Sie möchten == für eine genaue Übereinstimmung anstelle von enthält verwenden.
Name = „Jane_2“ ;
Namensliste = { „Jane“ , „Louise“ , „Katie“ , „Jane_2“ , „Becky“ , „Jane_3“ } ;
act_nameList = {} ;
Für ( ich = 1 , ich <= N Artikel ( Namensliste ) , ich ++,
Wenn ( Name == Namensliste [ ich ] ,
Einfügen in ( act_nameList , Namensliste [ ich ] )
)
) ;
Zeigen ( act_nameList ) ;