Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
chararray in string
foxm
myCSharp.de - Member



Dabei seit:
Beiträge: 21

Themenstarter:

chararray in string

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 49.486
Herkunft: Berlin

beantworten | zitieren | melden

Hallo foxm,

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


wert = Regex.Replace (_test.Text, "^.", "0");
herbivore
private Nachricht | Beiträge des Benutzers
foxm
myCSharp.de - Member



Dabei seit:
Beiträge: 21

Themenstarter:

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 49.486
Herkunft: Berlin

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
foxm
myCSharp.de - Member



Dabei seit:
Beiträge: 21

Themenstarter:

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 49.486
Herkunft: Berlin

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
foxm
myCSharp.de - Member



Dabei seit:
Beiträge: 21

Themenstarter:

beantworten | zitieren | melden

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

bye
private Nachricht | Beiträge des Benutzers
Yellow
myCSharp.de - Experte

Avatar #avatar-2347.png


Dabei seit:
Beiträge: 476

regex 2. zeichen auslesen

beantworten | zitieren | melden

Zitat
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
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 49.486
Herkunft: Berlin

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
Yellow
myCSharp.de - Experte

Avatar #avatar-2347.png


Dabei seit:
Beiträge: 476

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers