String richtig splitten
-
Hi Leute
Ich habe hostnames die in einen String gelesen werden und möchte diese jetzt bis auf den hostnamen splitten.
array<System::String^> ^hostsplit = hostInfo->HostName->Split(gcnew array<System::String^>{"."}, StringSplitOptions::RemoveEmptyEntries); String ^hname = hostsplit[1];
das funktioniert wunderbar mit hostnames wie zum Beispiel ns1.unitymediagroup.net.
Aber was ist wenn ich mal ein habe mit mehr punkten dann muss ich den index verschieben.zum Beispiel pool.2332.t-arcor.deIch müsste quasi den index von hinten haben da bei den hostnames das ende immer gleich ist .net .de .com.
Hat da einer ne Idee?
-
okay habs jetzt so gelöst:
array<System::String^> ^hostsplit = hostInfo->HostName->Split(gcnew array<System::String^>{"."}, StringSplitOptions::RemoveEmptyEntries); int i = 0; i = hostsplit->Length -2; String ^hname = hostsplit[i];
aber kann doch nicht so richtig sauber sein oder?
-
Nein sauber und sicher ist es nicht. Das Programm kann abstützen, falls du Ausnahmen nicht überprüfst, ob
hostsplit
sie Länge >=2 hat.Spontan würde ich auf Uri-Konstruktor (String, UriKind) tippen, aber wenn ich es richtig verstanden habe braucht das noch ein Schema.
Nachdem der/die/das (nicht zustreffendes bitte durchstreichen) URI erstellt wurde kannst du mit
Uri::DnsSafeHost
oderUri::Host
den hostnamen abgefragen.Edit: ">=" vor "2" eingefügt
-
super vielen dank
Uri::DnsSafeHost das hab ich gesucht