PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Verschmelzung von zwei Strings in C#



Ralgert
29.06.2012, 17:55
Mit XOR ;-)

ba ^= bb

ba = ba ^ bb

Rakeking
29.06.2012, 18:13
Der Operator ^ liefert aber einen booleschen Wert zurück. Ich benötige einen String.
Demnach funktionieren beide Code-Schnipsel nicht.

Rakeking
29.06.2012, 23:06
Vielen Dank Artemis,
habe heute keine Zeit mehr zum probieren.
Melde mich dann Morgen zurück.

Rakeking
30.06.2012, 10:24
Ok, der Code funktioniert so weit.
Allerdings steht in den beiden Strings Text, und keine 0 und 1.
Wie wandle ich diese also um?
Kann ich ein bestimmtes (Unicode-)Zeichen in Bit umwandeln?


@Mods
Bitte um Entschuldigung für die zwei Post hintereinander.
Der erste lies sich nicht mehr ändern.

Ralgert
30.06.2012, 13:28
Danke Artemis. Ich kenne mich mit C# nicht wirklich aus, hatte mich nur gewundert, dass es dort kein xor geben sollte.
Ist es mit einer Typumwandlung nicht einfacher ($ -> int; xor; int -> $)

Artemis1121
30.06.2012, 14:04
Ein BitArray kann XOR
http://msdn.microsoft.com/de-de/library/system.collections.bitarray.xor.aspx

Mit BitArray hatte ich bisher noch nie gearbeitet, ist aber nach dem was ich da gerade gelesen habe eine schöne low-level Datenstruktur! Jedes Element belegt nur 1 Bit(bool = 1byte!) :)

man muß also nur die Ausgangsstrings in zwei Bitarrays parsen und kann dann einfach bitArray1.Xor(BitArray2) machen :)
bleibt nur noch die Frage wie die beiden Strings genau aussehen!

Rakeking
30.06.2012, 15:58
Wow, das es so kurz geht hätte ich nicht gedacht.
Ich habe bisher nie mit StringBuilder gearbeitet, aber deine Lösung ist um weiten besser und übersichtlicher als meine.
Vielen Dank!

Ralgert
30.06.2012, 16:39
Wuerde auch so ein Konstrukt in Cis funktionieren?

a$ = Convert.ToString(Convert.ToUInt64(a$) ^ Convert.ToUInt64(b$));

Evtl. koennte man dabei noch das Convert herauskuerzen.