PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [C#] Zeichen ersetzen.



cocacola
07.03.2009, 18:53
Hallo! Ich grübel jetzt schon seit einiger Zeit an einem kleinen Problem. Und Zwar liefert mir mein Programm einen String zurück mit einer menge von \ (Backslashes). Nun zu meinem Problem: Ich will jedes zweite Zeichen durch einen Zeilenumbruch ersetzen. also nicht: response.Replace("\\", "\r \n") sondern jedes Zweite ;) Danke für eure Hilfe cocacola

M$A!
07.03.2009, 20:03
for( int i = 1 ; i < string.length() ; i++ )
{
if( i % 2 == 0 )
{
respone.Replace("\\", "\r \n")
}
}So in der Art müsste es gehen // Ist nicht Copy & Paste-fähig (Ist auch net C# sondern C++ wobeis in dem fall kein großer Unterschied machen dürfte)

cocacola
15.03.2009, 23:25
also da is irgendwie n denkfehler drin, da
respone.Replace("\\", "\r \n")
ja alle \ ersetzt und nicht jedes zweite. du rufst in deiner for
schleife response.replace("\\", "\r \n") die hälfte der anzahl der zeichen
in dem string auf, also versuchst du beispielsweise bei einem string mit 50 zeichen 25 mal die methode replace aufzurufen. aber trotzdem danke für die antwort :P

AlterHacker
15.03.2009, 23:38
Hallo! Ich grübel jetzt schon seit einiger Zeit an einem kleinen Problem. Und Zwar liefert mir mein Programm einen String zurück mit einer menge von \ (Backslashes). Nun zu meinem Problem: Ich will jedes zweite Zeichen durch einen Zeilenumbruch ersetzen. also nicht: response.Replace("\\", "\r \n") sondern jedes Zweite ;) Danke für eure Hilfe cocacola

Oo wo ist das Problem?

response.Replace("\\\\", "\\\r \n"); ?!

l4nk4b3l
15.03.2009, 23:50
Hier mal ein bsp. von mir ^^




//Mein test string
string str = "mein / string // ist ein / neuer /string";

//Zeichen nach dem gesucht werden soll die zahl du den ascii wert ersetzen
char chr = (char)47;


//String splitten
string[] split = str.Split(new char[] { chr });

//Leeren strin anlegen
string stri = String.Empty;

//Schleife durchgehen
for (int i = 0; i < split.Length; i++)
{
//wert der gesplited wurde einfügen
stri += split[i];

//Wenn das zweite zeichen erreicht wurde dann neue zeile ansonsten / zeichen wieder einfügen
if (i % 2 == 0)
{
stri += " \r \n";
}
else
{
stri += chr;
}
}

Console.WriteLine(stri);
Console.ReadKey();


*Edit
Habe eienen fehler entdeckt^^ da man ja bei 0 anfängt in der schleife muss man die if abfrage verändern aber alles will ich ja auch nicht vormachen :3

Steav
16.03.2009, 01:01
Kurz und bündig:
.......................
.......................
.....................




String testString = "1 / 2 / 3 / 4 /";
Boolean replace = false;
for (int i = 0; i < testString.Length; i++)
{
if (testString[i] == '/')
{
if (replace)
{
testString = testString.Remove(i,1).Insert(i, "\r\n");
}
replace = !replace;
}
}
MessageBox.Show(testString);

cocacola
16.03.2009, 12:18
danke! jetzt klappts! hab steavs code verwendet...