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
String aufteilen, mehrere Trennzeichen
Jack77
myCSharp.de - Member



Dabei seit:
Beiträge: 1

Themenstarter:

String aufteilen, mehrere Trennzeichen

beantworten | zitieren | melden

Hallo,

Ich bin gerade mir Csharp einwenig am beibringen und einarbeiten.
Doch habe ein kleines Problem mein String ist etwas größer und kann
ich diesen nicht einfachen 1char Seperator trennen. Dafür habe ich
die zeichenkette "//::\\" gewählt. Doch bekomme ich immer die meldung :

Fehler
Fehler 1 Die beste Übereinstimmung für die überladene string.Split(params char[])-Methode hat einige ungültige Argumente. ........\ConsoleApplication2\ConsoleApplication2\Program.cs 31 31 ConsoleApplication2


string[] text = s.Split("//::\\");

Könnt ihr mir die Richtige funktion und dessen Syntax erklären ?

Danke schonmal im vorraus!
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Jack77 am .
private Nachricht | Beiträge des Benutzers
LaBoLe
myCSharp.de - Member

Avatar #avatar-2768.gif


Dabei seit:
Beiträge: 10

beantworten | zitieren | melden

Hallo,

meines Wissens ist " " ein String und ' ' Char. Wenn du mit nur einem Zeichen trenen willst kannst du direckt 'c' an der Funktion eigeben. Bei mehreren Zeichen musst du dann ein char-Array machen und die Variable der Funktion übergeben.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von LaBoLe am .
Wer zu Letzt lach hat es nicht eher begriffen. :evil:
private Nachricht | Beiträge des Benutzers
vbprogger
myCSharp.de - Experte

Avatar #avatar-1820.gif


Dabei seit:
Beiträge: 1721
Herkunft: NRW/DE

beantworten | zitieren | melden

string[] text = s.Split(new string[] {"//::\\"});

sollte Abhilfe schafften aber \\ ist ja nur \ willst du 2 \ musst du entweder \\\\ oder @"//::\\" angeben.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von vbprogger am .
Ich bin verantwortlich für das, was ich sage, nicht für das, was du verstehst.
---------
Bemerkung: ich beantworte keine Fragen via PM, denn das Forum soll ja was davon haben!
private Nachricht | Beiträge des Benutzers
MrSparkle
myCSharp.de - Team

Avatar #avatar-2159.gif


Dabei seit:
Beiträge: 5960
Herkunft: Leipzig

beantworten | zitieren | melden

versuch mal:

string[] text = s.Split(@"//::\\");
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von MrSparkle am .
Weeks of programming can save you hours of planning
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 52329
Herkunft: Berlin

beantworten | zitieren | melden

Hallo Jack77,

warum ratet ihr denn hier alle rum? :-) Das geht doch bis auf LaBoLe-Vorschlag alles nicht.

string[] text = s.Split('/', ':', '\\');

herbivore
private Nachricht | Beiträge des Benutzers
MrSparkle
myCSharp.de - Team

Avatar #avatar-2159.gif


Dabei seit:
Beiträge: 5960
Herkunft: Leipzig

beantworten | zitieren | melden

Stimmt, ich habe es gar nicht ausprobiert, und dachte es liegt an dem "\".
Allerdings erwartet die Funktion ja ganz andere Argumente: MSDN: String.Split Method
Weeks of programming can save you hours of planning
private Nachricht | Beiträge des Benutzers
vbprogger
myCSharp.de - Experte

Avatar #avatar-1820.gif


Dabei seit:
Beiträge: 1721
Herkunft: NRW/DE

beantworten | zitieren | melden

yep, bei meinem Vorschlag habe ich die StringSplitOption vergessen :D, nun richtig wäre z.B.:

string[] text = s.Split(new string[] {@"//::\\"}, StringSplitOptions.None);
Ich bin verantwortlich für das, was ich sage, nicht für das, was du verstehst.
---------
Bemerkung: ich beantworte keine Fragen via PM, denn das Forum soll ja was davon haben!
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 52329
Herkunft: Berlin

beantworten | zitieren | melden

Hallo vbprogger,

das würde - so wie ich das sehe- aber den String nur da splitten, wo die sechs Zeichen //::\\ in dieser Reihenfolge hintereinander stehen. Das ist sicher nicht gemeint.

herbivore
private Nachricht | Beiträge des Benutzers
vbprogger
myCSharp.de - Experte

Avatar #avatar-1820.gif


Dabei seit:
Beiträge: 1721
Herkunft: NRW/DE

beantworten | zitieren | melden

Ah ... ich hab' nicht mehr drauf geachtet :D, {"//", "::", @"\\"} sollte schon helfen, oder?
Ich bin verantwortlich für das, was ich sage, nicht für das, was du verstehst.
---------
Bemerkung: ich beantworte keine Fragen via PM, denn das Forum soll ja was davon haben!
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 52329
Herkunft: Berlin

beantworten | zitieren | melden

Hallo vbprogger,

nö, immer noch nicht ganz. Jetzt würde nur da getrennt werden, wo die genannten Zeichen doppelt vorkommen, also eben //, :: oder \\. Wenn man wirklich an einzelnen Zeichen trennen will, ist es besser diese als Character und nicht als String anzugeben. Zumal mal man für Charakter kein char-Array braucht, sondern diese wie in meinem Beispiel direkt angeben kann.

herbivore
private Nachricht | Beiträge des Benutzers
vbprogger
myCSharp.de - Experte

Avatar #avatar-1820.gif


Dabei seit:
Beiträge: 1721
Herkunft: NRW/DE

beantworten | zitieren | melden

Aber ich dachte er verwendet doch Doppelzeichen, oder nicht? Denn man sieht :: in seinem Ursprungpost.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von vbprogger am .
Ich bin verantwortlich für das, was ich sage, nicht für das, was du verstehst.
---------
Bemerkung: ich beantworte keine Fragen via PM, denn das Forum soll ja was davon haben!
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 52329
Herkunft: Berlin

beantworten | zitieren | melden

Hallo vbprogger,

ich halte es für unwahrscheinlich, dass hier etwas anderes gemeint war, als dass bei den einzelnen Zeichnen getrennt werden soll.

herbivore
private Nachricht | Beiträge des Benutzers
OliverSte
myCSharp.de - Member



Dabei seit:
Beiträge: 8
Herkunft: Oldenburg (Oldb)

beantworten | zitieren | melden

Zitat von herbivore
das würde - so wie ich das sehe- aber den String nur da splitten, wo die sechs Zeichen //::\\ in dieser Reihenfolge hintereinander stehen. Das ist sicher nicht gemeint.
herbivore

Doch, genau das hat der TE gemeint. Er möchte den String mit einer Zeichenkette trennen, nicht nur mit einem einzelnen Zeichen.
"nicht einfachen 1char Seperator trennen. Dafür habe ich
die zeichenkette "//::\\" gewählt."

und ich suchte auch dafür eine Lösung und habe die hiermit gefunden.
Danke!!

Viele Grüße
Oliver
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von OliverSte am .
private Nachricht | Beiträge des Benutzers
T-Virus
myCSharp.de - Member



Dabei seit:
Beiträge: 1768
Herkunft: Nordhausen, Nörten-Hardenberg

beantworten | zitieren | melden

Und für diese Antwort holst du einen 11 Jahre alten Thread wieder aus dem Grab?
Da der TE auch nur diesen einen Post gemacht hat, wirst du auch kaum noch Feedback bekommen.

T-Virus
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von T-Virus am .
Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.
private Nachricht | Beiträge des Benutzers
OliverSte
myCSharp.de - Member



Dabei seit:
Beiträge: 8
Herkunft: Oldenburg (Oldb)

beantworten | zitieren | melden

Sorry, ich wollte nur mal Danke sagen.

Viele Grüße
Oliver
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15526
Herkunft: BW

beantworten | zitieren | melden

Zitat von OliverSte
Sorry, ich wollte nur mal Danke sagen.
Muss auch mal sein. Kam an
private Nachricht | Beiträge des Benutzers