Laden...

Wie lösche ich alle leeren Einträge nach einem String.Split()?

Erstellt von CoderboyPB vor 4 Jahren Letzter Beitrag vor 4 Jahren 909 Views
C
CoderboyPB Themenstarter:in
327 Beiträge seit 2008
vor 4 Jahren
Wie lösche ich alle leeren Einträge nach einem String.Split()?

Hallo, stehe gerade nen bissel auffem Schlauch:

Schreibe für Codewars an einem Programm, welches Zahlen in englisch von 1 bis 1 Million (als Wörter) in Strings umwandelt.

Nun soll das 'and' optional sein, und ich würde es gerne rauslöschen, bevor ich den String bearbeite:


s = s.Replace("and", ""); // remove optional 'and'
var parts = s.Split(' ');

liefert mir für four hundred and fifty-two

statt drei Teile vier Teile, nämlich

"four", "hundred", "" , "fifty-two"

Was mache ich da falsch, wie bekomme ich das leere Feld weg?

3.170 Beiträge seit 2006
vor 4 Jahren

Hallo,

nimm die Überladung für String.Split, die StringSplitOptions annimmt, und übergebe StringSplitOptions.RemoveEmptyEntries.

Das hättest Du leicht selbst der Doku entnehmen können.

Gruß, MarsStein

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca

C
CoderboyPB Themenstarter:in
327 Beiträge seit 2008
vor 4 Jahren

Alter, ich habs, ich muss "and " durch "" ersetzen, sonst bekomme ich zwei Leerzeichen ...

Ker, was bin ich blöd ... Facepalm

309 Beiträge seit 2020
vor 4 Jahren

Die Lösung von MarsStein ist aber sinnvoller, denn wenn jemand ausversehen 2 Leerzeichen eingibt z.B. "and_" dann hast du wieder das Problem

C
2.121 Beiträge seit 2010
vor 4 Jahren

Wenn du statt "and" noch ein Leerzeichen dran hängst -> "and " dann bleibt nur ein Leerzeichen übrig.
Oder du ersetzt " and " (vorne und hinten ein Leerzeichen) durch ein Leerzeichen.

Aber hier noch eine andere Idee, die ich sicherer finde.
Du wandelst ja selbst Zahlen in den String um, das heißt du fügst das "and" selbst ein, wenn ich das richtig verstanden habe.
Statt das erst einzufügen und dann wieder rauszulöschen, füge doch einfach keinen festen Wert ein sondern eine Variable. Die enthält entweder "and" (besser noch mit Leerzeichen) oder einen Leerstring.