Strings in viele Strings mit newline teilen?

7

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%     
darthwillard 02.02.2014, 18:20
quelle

4 Antworten

21

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%     
Steve 02.02.2014, 18:31
quelle
2
%Vor%

last3Digits: [345, 532, 634, 543, 435]

    
L.B 02.02.2014 18:35
quelle
1

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%     
Louis 08.04.2015 19:14
quelle
-1

Deine Antwort ist: theStringYouGot.Split('\n'); , wo du ein Array von Strings bekommst, für die du deine Daten verarbeiten kannst.

    
Aniket Inge 02.02.2014 18:25
quelle

Tags und Links