Strings von hinten auflösen und Sonderzeichen dazwischen einfügen

esilein

Grünschnabel
Hallo kann mir wer weiter helfen?

Ich versuche eine Telefonnummer nach DIN schlag mich tot zu schreiben. Heißt die Zahlen werden von hinten in 2-er Blöcken geschrieben und dazwischen ist ein Viertelgeviert (dünnes Leerzeichen).

Nun muss ich meine Zahlen von hintenher in 2er Blöcke bekommen und wichtig ist das man die Sonderzeichen auch noch "ignoriert". Heißt sie müssten bestehen bleiben aber werden in der Trennung nicht beachtet.

Wo anders habe ich den Tipp bekommen das es ja MID gibt. Nur bekomme ich dies nun nicht zum laufen.

Mein Dokumentenanfang schaut folgender Massen aus:

Code:
using System;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;
using Pageflex.Scripting;

Meine Zeile in der ich versuche die Funktion Mid zu nutzen schaut folgend aus:

Code:
String sTeilstring = Strings.Mid(TelefonText, 1, 2);

Gruß
esilein
 
Hey Esilein (niedlicher Name)

Strings haben die Methode "ToCharArray()"

Wenn du die Nummer "0900-775511" hast und wendest die Methode darauf an bekommst du ein Array mit 11 Feldern. Das kannst du dann von hinten nach vorne durcharbeiten und schauen, ob der aktuelle Eintrag kein Viertelgeviert (noch nie gehört) ist, wenns passt, dann hinzufügen und alle 2 (counter % 2 == 0) ein Leerzeichen einstreuen, damit sollte es dann passen:
 
Danke für die Hilfe, so an sich ist der Ansatz schon sehr gut nur versteh ich grad nicht wie ich mein Array nun wieder in einen String mit dem Sonderzeichen zwischendurch hin bekomme.

Und der Name stammt daher das ich als kleiner Eskimo immer bezeichnet werde.
 
Ich habe gerade ein Verständnisproblem... Wenn du als Ausgagnsnummer z.B. die 0800-5511-011 bekommst, dann muss es doch am Ende quasi 0800-5 51 10 11 rauskommen, oder nicht? Wenn ich jetzt allerdings lese, dass die '-' drinbleiben müssen stell ich mir das so vor: 0800 - 55 11 - 0 11 - Richtig?
 
Das werde ich dadurch lösen das man nur Nummern eingeben kann und einfach getrennte Felder nutz, daher muss man nur von hinten in 2-er Blöcke alles bekommen.

So weit hab ich das nun auch endlich alles geschaft. Nun muss ich nur noch raus bekommen ob ich über ne Redex sagen kann das man rein Zahlen und keine Leerzeichen eingeben darf. Dann hätte ich das schon alles in den Griff bekommen.

Code:
Char[] ZeichenArray = TelefonText.ToCharArray();

String temp1 = String.Format("{0}", ZeichenArray[i]); 
String temp2 = String.Format("{0}", ZeichenArray[i-1]); 
TelefonnummerFormatiert = " " + temp2 + temp1 + TelefonnummerFormatiert;

Das ist mein Lösungsweg dazu.
 
wenn du string.Format nicht unbedingt brauchst lass es weg.
Die Funktion ist nicht wirklich performant.
Und in deinem Code finde ich keinen Sinn für :D
 
Zurück