Laden...

String aufteilen, mehrere Trennzeichen

Erstellt von Jack77 vor 15 Jahren Letzter Beitrag vor 4 Jahren 6.185 Views
J
Jack77 Themenstarter:in
1 Beiträge seit 2008
vor 15 Jahren
String aufteilen, mehrere Trennzeichen

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 :

Fehlermeldung:
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! 🙂

10 Beiträge seit 2008
vor 15 Jahren

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.

Wer zu Letzt lach hat es nicht eher begriffen. :evil:

1.696 Beiträge seit 2006
vor 15 Jahren
string[] text = s.Split(new string[] {"//::\\"});

sollte Abhilfe schafften aber \ ist ja nur \ willst du 2 \ musst du entweder \\ oder @"//::\" angeben.

Ich bin verantwortlich für das, was ich sage, nicht für das, was du verstehst.

**:::

5.657 Beiträge seit 2006
vor 15 Jahren

versuch mal:

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

Weeks of programming can save you hours of planning

49.485 Beiträge seit 2005
vor 15 Jahren

Hallo Jack77,

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

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

herbivore

5.657 Beiträge seit 2006
vor 15 Jahren

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

1.696 Beiträge seit 2006
vor 15 Jahren

yep, bei meinem Vorschlag habe ich die StringSplitOption vergessen 😄, 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.

**:::

49.485 Beiträge seit 2005
vor 15 Jahren

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

1.696 Beiträge seit 2006
vor 15 Jahren

Ah ... ich hab' nicht mehr drauf geachtet 😄, {"//", "::", @"\"} sollte schon helfen, oder?

Ich bin verantwortlich für das, was ich sage, nicht für das, was du verstehst.

**:::

49.485 Beiträge seit 2005
vor 15 Jahren

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

1.696 Beiträge seit 2006
vor 15 Jahren

Aber ich dachte er verwendet doch Doppelzeichen, oder nicht? Denn man sieht :: in seinem Ursprungpost.

Ich bin verantwortlich für das, was ich sage, nicht für das, was du verstehst.

**:::

49.485 Beiträge seit 2005
vor 15 Jahren

Hallo vbprogger,

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

herbivore

O
11 Beiträge seit 2019
vor 4 Jahren

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

T
2.219 Beiträge seit 2008
vor 4 Jahren

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

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.

O
11 Beiträge seit 2019
vor 4 Jahren

Sorry, ich wollte nur mal Danke sagen.

Viele Grüße
Oliver

16.807 Beiträge seit 2008
vor 4 Jahren

Sorry, ich wollte nur mal Danke sagen.

Muss auch mal sein. Kam an 😉 👍