2016-04-06 11 views
0

Ich arbeite an einer persönlichen Benachrichtigungsanwendung für wenn ich streame.Split eine Zeichenfolge mit einem Anfang und Ende Delimeter

Momentan kann ich eine URL lesen und sie als TXT-Datei speichern.

Jetzt versuche ich, diese Datei zu 'säubern'.

Zum Beispiel würde Ich mag diese nehmen:

<tr> 
    <tdclass="date">April11,2015,1:48p.m.</td> 
    <tdclass="donor-name">Mr.Bob</td> 
    <tdclass="charity-name">Whatever</td> 
    <tdclass="amount">$15.00</td> 
</tr> 
<tr> 
    <tdclass="date">April11,2015,2:31p.m.</td> 
    <tdclass="donor-name"> 
    // etc etc etc 

Und alles löschen, während Token wie folgt zu erstellen:

Donor-name: Mr.Bob

Betrag: $ 15.00

String toParse = readFile(fileName); 
    toParse = toParse.replace("\n","").replace("\r",""); 
    toParse = toParse.replaceAll(" ", ""); 
    String donorPattern = "donor-name\\\">([\\w\\s\\.]*)<"; 
    String amountPattern = "amount\\\">([\\d\\s\\.\\$]*)<"; 
+0

Ist der Inhalt der Textdatei eine lange Zeichenfolge, wie Sie in Ihrem Beispiel gezeigt haben? Was hast du bisher versucht? – DevilsHnd

+1

Analysieren Sie eine HTML-Seite? Wenn die Antwort ja lautet, ist Ihre beste Wahl ein HTML-Parser wie JSoup: http://jsoup.org/ – marcellorvalle

Antwort

0

Ich würde Ihnen empfehlen, Regex zu verwenden. Für diesen Fall insbesondere die regex die Gruppen „Spender-Namen“ zu erfassen und „Menge“ Klassen sind:

Regex den Inhalt von „Spender-name“ zu erfassen:

donor-name\">([\w\s\.]*)< 

Regex zu Captures der Inhalt von „Menge“:

amount\">([\d\s\.\$]*)< 

Sie sind nur einige Beispiele von vielen möglichen Wege Regex zu verwenden und ich sehr empfehlen, die zweite zu verbessern nur Zahlen übereinstimmen.

Weitere Informationen über Regex in Java:

https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html

Hoffnung, das hilft :)

Verwandte Themen