Ich habe die nächste Frage. Wenn ich zum Beispiel die nächste CharArray: {! (! A & & A) (! A & & A)} '!' Das Problem hier ist, dass ich das alles löschen möchten das ist neben "A" und addiere "!" zum 'A', das es im ursprünglichen CharArray nicht hat. So ist das Endergebnis dieses Problems sein müssen: Wie lösche und füge ich Elemente in einem CharArray in C# hinzu?
Ich habe versucht, dies zu verwenden, um die zu lösch {(A & & A!) (A & & A)!} '': // Regla ist der String, {! (! A & & A) (! A & &! A)}
`char[] array = Regla.ToCharArray();
for (int i = 0; i < array.Length; i++)
{
char c = array[i];
if (c == idL1 && array[i - 1] == '!')
{
if (cont1 == 0 && cont2 == 0)
{
var tRegla = new StringBuilder(Regla);
tRegla.Remove(i - 1, 1);
Regla = tRegla.ToString();
cont1++;
}
if (cont1 == 1 && cont2 == 1)
{
var tRegla = new StringBuilder(Regla);
tRegla.Remove(i - 2, 1);
Regla = tRegla.ToString();
cont1++;
}
if (cont1 == 2 && cont2 == 2)
{
var tRegla = new StringBuilder(Regla);
tRegla.Remove(i - 3, 1);
Regla = tRegla.ToString();
cont1++;
}
if (cont1 == 3 && cont2 == 3)
{
var tRegla = new StringBuilder(Regla);
tRegla.Remove(i - 4, 1);
Regla = tRegla.ToString();
cont1++;
}
cont2++;
}`
Aber im Moment ein hinzufügen enthält '!' Ich habe eine Menge Probleme, weil der Zähler ‚i‘ ändert und ich verwende sompething wie:
`var tRegla = new StringBuilder(Regla);
tRegla.Insert(i - 1, "!");
Regla = tRegla.ToString();
cont1++;}`
Ich denke, es ein besserer Weg, es zu lösen ist. Vielen Dank.
Anstelle eines Arrays verwenden Sie eine 'List'. Dann können Sie einfügen oder entfernen, ohne alles kontinuierlich neu zu erstellen. –
Verwenden Sie keine for-Schleife, sondern eine while-Schleife, in der Sie den Index selbst inkrementieren. Auf diese Weise können Sie den Index nach dem Einfügen oder Entfernen eines '!' Justieren. –