Laden...

Ändern von Strings (in einem Array) nicht möglich

Erstellt von indeopax vor 10 Jahren Letzter Beitrag vor 10 Jahren 551 Views
Thema geschlossen
I
indeopax Themenstarter:in
5 Beiträge seit 2013
vor 10 Jahren
Ändern von Strings (in einem Array) nicht möglich

Hallo zusammen,

ich habe eine Eingabedatei die aus mehreren Zeilen besteht. Mithilfe des Streamreaders lese ich diese in ein Stringarray ein (d.h. pro eingelesene Zeile einen neuen String


 StreamReader sr = new StreamReader(@"C:\lab.dat");
.
.
.
for (int i = 1; i < y+1; i++)
            {
               a[i] = sr.ReadLine();
}

In einer weiteren Schleife frage ich nun den Inhalt der jeweiligen Arrays ab und möchte anschließend das Zeichen an dieser Stelle gegen ein anderes ersetzen.


for (int j = 0; j < x; j++)
               {
                   if (a[i][j] == '#')
                   {...

                   a[i][j] == ' '   }

Bei letzten Schritt macht mir der Compiler einen Strich durch die Rechnung mit der Meldung:

Fehlermeldung:
Einer Eigenschaft oder einem Indexer "string.this[int]" kann nichts zugewiesen werden -- sie sind schreibgeschützt.

Gibts hier ein Möglichkeit das Zeichen trotzdem zu ersetzen ?

Gruß

49.485 Beiträge seit 2005
vor 10 Jahren

Hallo indeopax,

mit dem Array hat das gar nichts zu tun, sondern - wie die Fehlermeldung sagt - mit dem Indexzugriff auf den String, der generell nicht erlaubt ist, siehe [FAQ] Besonderheiten der String-Klasse (immutabler Referenztyp mit Wertsemantik). Strings sind unveränderlich. Willst du eine Änderung durchführen, musst du den String durch einen neuen ersetzen. Vermutlich ist String.Replace, was du suchst.

Bitte beachte [Hinweis] Wie poste ich richtig? Punkt 1.1.1 und [Hinweis] Syntaxfehler selbst lösen (Compilerfehlermeldungen).

herbivore

Thema geschlossen