Ich habe eingehende Daten, die in mehrere Werte aufgeteilt werden müssen ... ie.
2345 \ n564532 \ n345634 \ n234 234543 \ n1324 2435 \ n
Die Länge ist inkonsistent, wenn ich sie erhalte, der Abstand ist inkonsistent, wenn er vorhanden ist, und ich möchte die letzten drei Ziffern vor jedem \ n analysieren. Wie breche ich die Saite ab und verwandle sie in eine neue Saite? Wie gesagt, diese Runde hat vielleicht 3 \ n Befehle, nächstes Mal 10, wie erstelle ich 3 neue Strings, analysiere sie und vernichte sie dann, bevor die nächsten 10 kommen?
%Vor%Sie könnten die string.Split-Methode . Insbesondere schlage ich vor, die Überladung zu verwenden, die eine Reihe möglicher Trennzeichen verwendet. Dies deshalb, weil das Aufteilen auf das Newline-Zeichen ein einzigartiges Problem darstellt. In Ihrem Beispiel sind alle Zeilenumbruchzeichen einfach '\ n', aber für einige Betriebssysteme ist das Zeilenumbruchzeichen '\ r \ n' und wenn Sie die Möglichkeit nicht ausschließen können, die zweien in der gleichen Datei zu haben, dann
%Vor%Wenn Sie jedoch sicher sind, dass die Datei nur das von Ihrem Betriebssystem zugelassene Trennzeichen für neue Zeilen enthält, können Sie
verwenden %Vor%Mit StringSplitOptions.RemoveEmptyEntries können Sie ein Paar aufeinanderfolgender Zeilenumbrüche oder Endzeilen als leere Zeichenfolge erfassen.
Jetzt können Sie an dem Array arbeiten, das die letzten 3 Ziffern jeder Zeichenfolge untersucht
%Vor%Wenn Sie stattdessen nur den Index des Zeilenumbruchs verwenden möchten, ohne die ursprüngliche Zeichenfolge zu trennen, können Sie string.IndexOf auf diese Weise verwenden
%Vor%Dies wurde zuvor beantwortet, überprüfen Sie diesen Thread: Einfachste Möglichkeit, eine Zeichenfolge in Newlines in .NET zu teilen?
Eine andere Möglichkeit ist die Verwendung von StringReader:
%Vor% Deine Antwort ist: theStringYouGot.Split('\n');
, wo du ein Array von Strings bekommst, für die du deine Daten verarbeiten kannst.
Tags und Links string c# newline string-split