myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » Grundlagen von C# » Zeichenkette splitten
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

Zeichenkette splitten

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
BS2000
myCSharp.de-Mitglied

Dabei seit: 29.06.2019
Beiträge: 3


BS2000 ist offline

Zeichenkette splitten

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo zusammen,

bin neu hier und lerne C#, also Anfänger. Ich habe eine Frage zu Zeichenketten(Strings).

Wie kann ich aus einen String in der Form
eingabe ="Herr Max Mustermann 12345 Musterstadt\nTelefon: "

mehrere Einzelstrings machen.

Form:

Anrede = "Herr"
Name = "Max Mustermann"
PLZ = "12345"
Ort = "Musterstadt"
Telefon = "Telefon: "

Die Eingabe besteht aus eine Exceldatei die mehrere Zeilen in einer Spalte beinhaltet
und die sich auch im Format unterscheiden,
also es gibt auch die Variante
eingabe ="Herr Max Mustermann\n 12345 Musterstadt"

Das Importieren von Excel ist kein Problem, ich weiss halt nicht genau wie ich die unterschiedlichen
Formate behandeln soll. Die Methoden Trim() und Split() kenne ich aber ich bekomme z.b. das
"\n" nich aus dem Eingabestring gelöscht.

Würde mich über einen Tip von euch sehr freuen!

VG
BS2000
Neuer Beitrag 29.06.2019 08:52 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Th69
myCSharp.de-Poweruser/ Experte

avatar-2578.jpg


Dabei seit: 01.04.2008
Beiträge: 3.405
Entwicklungsumgebung: Visual Studio 2015/17


Th69 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo und willkommen,

mit dem Wort 'splitten' hast du schon das richtige Stichwort:  String.Split.
Anscheinend weißt du nur nicht, wie man diese Methode richtig anwendet?!
Mit str.Split(new char[] { ' ', '\n' }) würdest du beispielsweise anhand der beiden Zeichen splitten (und mit den StringSplitOptions als weiteren Parameter hast du noch weitere Möglichkeiten).
Neuer Beitrag 29.06.2019 10:33 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
BS2000
myCSharp.de-Mitglied

Dabei seit: 29.06.2019
Beiträge: 3

Themenstarter Thema begonnen von BS2000

BS2000 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Vielen Dank für deine Info und den netten Willkommensgruß. Der Aufruf str.Split(new char[] { ' ', '\n' }) war sehr hilfreich, allerdings kann ich anstelle eines Leerzeichens als Trennzeichen auch mehrere Spacezeichen verwenden? Also eingabe ="Herr Max Mustermann (TRENNZEICHEN mehrere Zeichen) 12345 Musterstadt\nTelefon: "

Zwischen den Wörtern können auch mehr als ein Leerzeichen auftauchen, dan müste das Konstrukt so aussehen: str.Split(new string[] { " ", '\n' }) ?

Viele Grüße
Neuer Beitrag 29.06.2019 16:33 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Th69
myCSharp.de-Poweruser/ Experte

avatar-2578.jpg


Dabei seit: 01.04.2008
Beiträge: 3.405
Entwicklungsumgebung: Visual Studio 2015/17


Th69 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Dafür habe ich dir ja den Hinweis auf  StringSplitOptions gegeben (StringSplitOptions.RemoveEmptyEntries ;-).

Die Überladung mittels string[] nimmt dann die kompletten Stringeinträge als mögliche Trennzeichen (also z.B. bei new string[] { "+-", "\n" } nur, wenn auch +- auftaucht, nicht wenn nur ein + oder - auftaucht).
Neuer Beitrag 29.06.2019 17:44 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
BS2000
myCSharp.de-Mitglied

Dabei seit: 29.06.2019
Beiträge: 3

Themenstarter Thema begonnen von BS2000

BS2000 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Guten Morgen Th69,

ich hab mal etwas gecodet:

C#-Code:
string s1 = "Herr Max Mustermann(dazwischenleerzeichen) 12345 Musterstadt\nTelefon";
char[] charSeparators = new char[] {'\n'};
string[] stringSeparators = new string[] {"  "};
string[] result;

result = s1.Split(stringSeparators , StringSplitOptions.None);
result [4].Split (charSeparators, StringSplitOptions.None);

Er splittet es auch schön in fünf Felder auf, aber beim letzen also 1234 Musterstadt\nTelefon
splittet das Programm nicht weiter auf, es bleibt so wie es ist.

Kann ich nicht sozugagen einen Split auf Split machen? Eine Anweisung in der Art result = s1.Split(stringSeparators , charSeparators, StringSplitOptions.None) ist ja leider nicht möglich

Vielen Dank und Gruß


mycsharp.de  Moderationshinweis von Abt (30.06.2019 16:08):

Bitte Code Tags verwenden
 [Hinweis] Wie poste ich richtig?

 
Neuer Beitrag 30.06.2019 10:44 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Th69
myCSharp.de-Poweruser/ Experte

avatar-2578.jpg


Dabei seit: 01.04.2008
Beiträge: 3.405
Entwicklungsumgebung: Visual Studio 2015/17


Th69 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Bei deiner letzten Zeile mußt du auch das Ergebnis verwenden:

C#-Code:
string[] result2 = result[4].Split(charSeparators, StringSplitOptions.None);

PS: Bitte benutzte Code-Tags (C#) hier im Forum
Neuer Beitrag 30.06.2019 11:34 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als 5 Monate.
Der letzte Beitrag ist älter als 5 Monate.
Antwort erstellen


© Copyright 2003-2019 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 10.12.2019 20:51