Ich möchte das tun:
%Vor%und s werden "axc". Es scheint jedoch, dass string [i] nur einen Getter hat und keinen Setter hat. Der Compiler gibt mir den folgenden Fehler:
"Eigenschaft oder Indexer 'string.this [int]' kann nicht zugewiesen werden zu - es ist nur lesbar "
Ich denke, ich könnte eine Schleife machen und den gewünschten Char ändern. aber ich habe mich nur gefragt, ob es einen einfachen Weg gibt, es zu tun? Und warum gibt es keinen Setter für String [i]?
Vielen Dank im Voraus.
Strings sind unveränderbar, daher müssen Sie ein char[]
-Array erstellen, es ändern und es dann in eine Zeichenfolge zurückverwandeln:
(Ihr Beispiel ist etwas falsch: s [2] = 'x' sollte es in "abx" ändern.)
Nein, Sie können nicht, da Strings unveränderbar sind, müssen Sie eine neue Zeichenfolge erstellen:
Sie sollten eine Methode verwenden, die eine neue Zeichenfolge mit der gewünschten Änderung zurückgibt.
Hoffe das hilft!
Denken Sie daran, dass Strings in verwalteten und sicheren .Net-Archiven unveränderlich sind. Selbst wenn Sie das oben beschriebene tun könnten, würden Sie wirklich eine neue Kopie des Strings mit dem Ersatz erstellen.
Wenn Sie nur ein Zeichen ersetzen, ist wahrscheinlich eine einfache Schleife die beste Wahl.
Wenn Sie jedoch mehrere Ersetzungen vornehmen möchten, sollten Sie eine StringBuilder
:
Ich denke nicht, dass Sie das in C # tun können, da die Zeichenfolge nicht geändert werden kann (einfach zerstört und neu erstellt). Sehen Sie sich die Klasse StringBuilder an.