Moin Leute,
Ich versuche seit einiger Zeit mit Textstrings zu arbeiten. Ich möchte gewisse Buchstaben in einem String ersetzen.
Das Problem ist dass wenn ich z.B
Da die A's ja in C's umgewandelt werden werden diese dann in X umgewandelt was ich verhindern möchte.
Weil dann wärs ja unlogisch wenn A -> C -> X
Kann ich das irgendwie so schreiben dass alle gleichzeitig ersetzt werden und nicht schon mal bearbeitete noch mal bearbeitet werden?!
Lg!
Hallo apid0x,
das geht mit Regex.Replace in Kombination mit einem MatchEvaluator, der die zu dem gerade gefundenen Zeichen jeweils passende Ersetzung zurückliefert.
herbivore
Hallo,
das geht auch mit "Replace" :
string a1 = "ABCABC";
string a2 = a1.Replace("C","X").Replace("A","C");
Das Problem ist dass wenn ich z.B
- Alle A's mit C ersetzen
- Alle C's mit X ersetzen
Da die A's ja in C's umgewandelt werden werden diese dann in X umgewandelt was ich verhindern möchte.
Ersetze doch
Dann gehts !
Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3
Danke mal für die Antworten.
@Bernd: Ich hab dann aber schon mehr Buchstaben - ich möchte nämlich so ne Art Verschlüsselungsprogramm bauen dass das ABC mit meinem eigenen ABC ersetzt und wieder zurückübersetzt.
@herbi: Gäbs da auch ne andere Lösung als RegEx? Bin da nich so bewandert...
edit:
Hab mal das probiert - aus verschiedenen Tutorialanweisungen zusammengebastelt, nicht lachen - wiegesagt bin kein Regex-Genie 😜
using System;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;
namespace vZa
{
class Program
{
public static string ReplaceMethode(Match m)
{
switch (m.Value)
{
case "a":
return "b";
break;
case "b":
return "a";
break;
default:
return "";
break;
}
}
static void Main(string[] args)
{
MatchEvaluator myEvaluator = new MatchEvaluator(ReplaceMethode);
string ersetzterString = Regex.Replace("abcdef", "-*.*", myEvaluator, RegexOptions.IgnoreCase);
Console.WriteLine(ersetzterString);
Console.ReadLine();
}
}
}
@Bernd: Ich hab dann aber schon mehr Buchstaben - ich möchte nämlich so ne Art Verschlüsselungsprogramm bauen dass das ABC mit meinem eigenen ABC ersetzt und wieder zurückübersetzt.
Du weisst dass das aber so gut wie keine Sicherheit bietet ?
NET 2.0 bietet doch schon fertige Klassen für sichere Verschlüsselung.
Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3
Ja das weiss ich auch, ist nur für ein Schulprojekt - soll nix sicheres sein 🙂