2016-04-17 6 views
1

Ich vergleiche Strings in Visual Basic 2010 Express. Während die String zusammen Cuting fügt es manchmal ein Char mit "", was ich hoffte, ist „nichts“VB2010 String summiert die Länge durch Hinzufügen von ""

Beispiel:

Dim text as String = "test" 
Dim sign as Char = "" 
text = text + sign 

während debuging heißt es, dass der neue Text "test" ist, aber wenn ich fragen, für die Length es ist 5.

Dies ist ein Problem, wenn ich versuche, dies zu vergleichen mit einer anderen String

Dim bigtext as String = "test1234" 
Dim text as String = "test" 
Dim sign as Char = "" 
text = text + sign 
bigtext.indexOf(text) 'should be 0 (index), but is -1 (not found) 

eine Idee, wie ein "" weg oder eine andere Problemumgehung zu filtern?


Bearbeiten - mein workoround jetzt:

Jetzt füge ich "§" überall statt "" und wenn ich indexOf() verwenden müssen, etwas zu vergleichen, ich Replace("§", "") es.
(mit Replace() es gelöscht wird)

+1

http://www.dotnetperls.com/string-empty-vbnet es nicht wiedergeben kann, obwohl –

+0

@ Fᴀʀʜᴀɴ Aɴᴀᴍ, was ich brauche, ist mehr etwas wie ein 'Char.Empty' – Skandix

+1

Vermutlich im Zusammenhang mit der Tatsache, dass Sie in C# kein leeres Zeichenliteral haben können ... VB ist seltsam, wie es funktioniert, also erzwingt dies wahrscheinlich, indem es es macht ein '\ 0' unter der Haube – pinkfloydx33

Antwort

3

Soweit ich sehen kann, eine Char Variable hat immer ein Zeichen in ihm (das ist das Null-Zeichen sein kann). Durch Verknüpfen mit einer anderen Zeichenfolge wird dieses Zeichen an die vorhandene Zeichenfolge angehängt.

Ich sehe zwei Lösungen:

  1. einen String Verwenden Sie für sign statt eines Char. Die Zeichenfolge könnte leer sein oder ein einzelnes Zeichen enthalten.

  2. Schneiden Sie die unerwünschten Zeichen aus dem resultierenden String:

    text = (text + sign).Trim(CChar(""))

+0

@ConnersFan Ich habe den zweiten Teil erfolgreich benutzt. Die Verwendung von Strings war für mich nicht möglich. Ich habe meine Lösung am Ende der Frage bearbeitet - habe einfach einen unbenutzten Char verwendet – Skandix