Das phrase
enthält bidirektionale Zeichen wie right-to-left Einbettung . Aus diesem Grund können einige Editoren die Zeichenfolge nicht korrekt anzeigen.
Dieser Codeabschnitt zeigt die tatsächlichen Zeichen in String
(für einige Leute wird phrase
hier nicht richtig angezeigt, aber kompiliert und sieht in Eclipse gut aus). Ich übersetze einfach links-rechts mit - & gt; , rechts-nach-links mit & lt; - und < starke> Pop-Richtungen mit ^ :
Drucke:
& lt; -; - & gt; 14 / Mai / 2015 ^ ^ & lt; - - & gt; FC ^ ^ & lt; - - & gt; Barcelona ^ ^ & lt; - - & gt; VS. ^ ^ & lt; - - & gt; Wirklich ^ ^ & lt; - - & gt; Madrid
Der String#split()
arbeitet mit der tatsächlichen Zeichenkette und nicht mit dem, was der Editor anzeigt, daher können Sie sehen, dass ;
das zweite Zeichen nach einem rechts-zu left , das gibt (hüte dich vor der Anzeige: das ;
ist nicht Teil der Zeichenkette in dateSplit[1]
):
dateSplit [0]=""; dateSplit [1]="14 / May / 2015 FC Barcelona gegen Real Madrid";
Ich schätze, Sie verarbeiten Daten von einer Sprache, die von rechts nach links schreibt und liest, und es gibt eine Vermischung mit den Namen der Football-Teams, die von links nach rechts gehen. Die Lösung besteht sicherlich darin, Richtungszeichen loszuwerden und das ;
an die richtige Stelle zu setzen, d. H. Als Trennzeichen für das Token.
I rewrote
Ihr Code, anstatt von hier zu bewältigen und es funktioniert einwandfrei.
Ausschneiden und Einfügen Ihres Codes in IntelliJ hat den Editor verschraubt; wie @Palcente sagte, mögliche Codierungsprobleme.
Ich würde jedoch empfehlen, stattdessen einen StringTokenizer zu verwenden.
%Vor%Sie können dann darüber iterieren, was zu einem besseren (und sichereren) Code führt.