Laden...

chararray in string

Erstellt von foxm vor 18 Jahren Letzter Beitrag vor 18 Jahren 2.767 Views
F
foxm Themenstarter:in
21 Beiträge seit 2005
vor 18 Jahren
chararray in string

hi leute!

eine wohl blöde frage... aber ich schaffs einfach nicht... hier de gesamte code... ich möchte eben ein zeichen manipulieren... und es klappt nicht


string wert = _test.Text; //Textbox
char[] charArray = wert.ToCharArray(0,4);
charArray[0] = '0';
_test.Text = charArray.ToString();

ich möchte was auslesen und das erste zeichen durch eine 0 ersetzen... auch mit Convertto klappts nicht! 🙁

besten dank für tipps 🙂

bye

49.485 Beiträge seit 2005
vor 18 Jahren

Hallo foxm,

du musst da gar keinen Umweg über char-Array gehen:


wert = Regex.Replace (_test.Text, "^.", "0");

herbivore

F
foxm Themenstarter:in
21 Beiträge seit 2005
vor 18 Jahren

danke danke, aber das ist nicht ganz das was ich suche.. 🙂
der hintergrund ist... ich clicke auf eine checkbox und er soll dann in dem textfeld eine 0 abspeichern... ist die checkbox aktiviert soll an der ersten stelle eine 1 stehen 🙂
daher das mitn chararray!

bye

49.485 Beiträge seit 2005
vor 18 Jahren

Hallo foxm,

zumindest du mein Code genau das, was dein Code tun soll, aber nicht tut.

Ansonsten musst du String Constructor (Char[]) benutzen, um aus einem char-Array wieder einen String zu machen.

herbivore

F
foxm Themenstarter:in
21 Beiträge seit 2005
vor 18 Jahren

danke 🙂 für was ist "^." zu gebrauchen?

ich habe in der textbox immer eine 4 stellige zahl.. jede der stellen sagt etwas aus.. daher möchte ich eine stelle manipulieren!

thx

49.485 Beiträge seit 2005
vor 18 Jahren

Hallo foxm,

"." ist ein regulärer Ausdruck. Das Dach steht für den String-/Zeilenanfang und . für ein beliebiges Zeichen. "." passt also genau auf das erste Zeichen des String/der Zeile, egal was für ein Zeichen das ist.

herbivore

F
foxm Themenstarter:in
21 Beiträge seit 2005
vor 18 Jahren

danke für den Tipp mit den String Constr. so hab ich es geschafft!

bye

476 Beiträge seit 2004
vor 18 Jahren
regex 2. zeichen auslesen

Original von herbivore
Hallo foxm,

du musst da gar keinen Umweg über char-Array gehen:

  
wert = Regex.Replace (_test.Text, "^.", "0");  
  

herbivore

hallo herbivore,

ich habe mit regex noch nicht viel gemacht. was mich interessieren würde ist, wie muss ich das pattern definieren um bei dem obigen beispiel nur das 2. bzw. nur das 3. zeichen zu ersetzen? ich habe in der framework-sdk nachgeschaut, aber bei will der groschen einfach nicht fallen. ich denke foxm wird es ähnlich gehen, welshalb er dann lieber den umweg über's char array gegangen ist.

könntest du ein kurzes beispiel posten?

-yellow.

Selbst ein Weg von tausend Meilen beginnt mit einem Schritt (chinesisches Sprichwort).

Mein Blog: Yellow's Blog auf sqlgut.de

49.485 Beiträge seit 2005
vor 18 Jahren

Hallo Yellow,

um das zweite Zeichen zu ersetzen muss der Pattern "(?≤^.)." lauten. Da man hier eine "Zero-width positive lookbehind assertion" verwenden muss, ist der Pattern schon etwas schwieriger zu verstehen. Für längen- oder positionsabhängige Ersetzungen ist Regex ohnehin nicht optimal (abgesehen von besonderen Positionen, wie "Anfang der Zeile"). Man ist dann u.U. mit String.Substring besser bedient.

herbivore

476 Beiträge seit 2004
vor 18 Jahren

hallo herbivore,

vielen dank für deine antwort, das hilft mir die regulären ausdrücke besser zu verstehen (kann nie schaden mit regex umgehen zu können). den gedanken, "String.Substring" zu verwenden, hatte ich auch, finde aber, speziell für foxm's problem, die array-lösung dann doch besser.

übrigens, dass das pattern für das zweite zeichen schwieriger zu verstehen ist, und regex im allgemeinen für diesen fall nicht so geeignet ist, beruhigt mich ungemein (hatte schon befürchtet etwas übersehen zu haben).

-yellow

Selbst ein Weg von tausend Meilen beginnt mit einem Schritt (chinesisches Sprichwort).

Mein Blog: Yellow's Blog auf sqlgut.de