split()-Methoden problem

yax

Bekanntes Mitglied
Hallöchen,

ich hab da ein, meiner meinung nach, einfaches Problem, aber ich komm einfach nicht auf die Lösung!!

Also ich habe eine .txt - Datei. Diese lese ich ein und speichere die Zeile in einen String. Diesen möchte ich dann "splitten". Den gesplitteten String speichere ich in ein Array. Und wenn ich das Array dann ausgeben möchte, bekomme ich nur komische Zeichen. Hat irgendjemand vielleicht eine Idee??

Hier mein Code:
Code :

Java:
FileReader fr = new FileReader("vokabeln.txt");
    BufferedReader br = new BufferedReader(fr);

    String vokabeln = br.readLine();
    String[] vokabelnArray = vokabeln.split("//.");
    System.out.println(vokabeln.toString());

    br.close();


Das Ergebnis ist dann immer: ÿþd

Und in der Datei steht:

deutschvokabel.englischvokabel

Hat vielleicht jemand eine Idee ?
 
G

gman

Gast
Hi,

läuft das Programm unter Windows 7? Ich hatte da auch mal ein Problem mit der Zeichenkodierung.
Ich musste dann den Zeichensatz setzen:

Java:
    FileInputStream fis = new FileInputStream("datei.txt");
    InputStreamReader isr = new InputStreamReader(fis, "UTF-16");
    InputStreamReader isr = new InputStreamReader(fis);
    BufferedReader br = new BufferedReader(isr);
 

yax

Bekanntes Mitglied
Stimmt das ist eine guute Idee :)

Funktioniert auch nicht, ich habe nach jedem Buchstaben so ein kleines Kästchen. :(
 
G

Gelöschtes Mitglied 5909

Gast
mach mal

Java:
System.out.println(Arrays.toString(vokabelnArray));
 

Wortraum

Bekanntes Mitglied
Wenn Du eine Datei einliest, solltest Du immer die Kodierung mit angeben, denn andernfalls wird die Standardkodierung Deines Benutzers oder Deines Systems genommen. Wie Deine Datei kodiert ist, kannst eigentlich nur Du wissen.

Solltest Dein Programm den Text einfach nur in der Windows-Konsole ausgeben, können ebenfalls Kodierungsfehler auftreten, da die Konsole alles in CP850 darstellt.
 

yax

Bekanntes Mitglied
Also dabei ändert sich gar nichts wenn ich UTF-8 oder -16 nimm...

Und bei

System.out.println(Arrays.toString(vokabelnArray));

ebenfalls nichts.
 
G

Gelöschtes Mitglied 5909

Gast
Wie hast du die Datei geschrieben? mit notepad oder so? nehm mal einen gescheiden Editor und schreibe die Datei in UTF-8,
danach lies sie auch wieder in UTF-8 aus. Alternativ kannst du sie auch mal mit Java schreiben.
 

VfL_Freak

Top Contributor
Moin,

String vokabeln = br.readLine();
String[] vokabelnArray = vokabeln.split("//.");
System.out.println(vokabeln.toString());

Müsste es nicht "split("\\.") sein :oops:

Zudem gibst Du mit dem println ja nur den ursprünglichen String aus, nicht das Array nach dem Splitten.

Gruß
Klaus
 

yax

Bekanntes Mitglied
So vielen dank für eure hilfen. :) Ich habe es jetzt geschafft, die Vokabeln zu trennen. Aber wenn ich mir die Deutschvokabel anzeigen lasse, stehen da immer so Zeichen vor (Ausgabe: deutschvokabel). Bei der Englischvokabel funktioniert alles prima. :)

Aber wie bekomme ich diese Zeichen weg??
 

Wookie81

Aktives Mitglied
Java:
    System.out.println(vokabeln.toString());

Hmm gibt das nicht den Verweis auf das Array als String aus? Also ne Speicheradresse als String ... und das kann ja nur komisch Zeichen sein.

Java:
    System.out.println(vokabeln[0] + " - " + vokabeln[1]);

Gruß,
Wk
 

VfL_Freak

Top Contributor
Moin,

Hmm gibt das nicht den Verweis auf das Array als String aus? Also ne Speicheradresse als String ... und das kann ja nur komisch Zeichen sein.
Java:
    System.out.println(vokabeln[0] + " - " + vokabeln[1]);

nur, das "vokabeln" immer noch ein String und kein Stringarray ist !!

Java:
String vokabeln = br.readLine();
String[] vokabelnArray = vokabeln.split("//.");
System.out.println(vokabeln.toString());
die Teilstrings nach den Splitten steht in "vokabelnArray" ... der String "vokabeln" ist natürlich unverändert !!

Also müsste es so aussehen:
Java:
System.out.println( vokabelnArray[0] + " - " + vokabelnArray[1] );


Gruß
Klaus
 

Wookie81

Aktives Mitglied
die Teilstrings nach den Splitten steht in "vokabelnArray" ... der String "vokabeln" ist natürlich unverändert !!

Also müsste es so aussehen:
Java:
System.out.println( vokabelnArray[0] + " - " + vokabelnArray[1] );

Autsch! Du hast natürlich recht ... damit sollte die Ausgabe von vokabeln oder vokabeln.tostring natürlich die komplette Zeile (ohne Zeichenfehler) ausgeben.

Wk
 

yax

Bekanntes Mitglied
So, jetzt werden die Vokabeln angezeigt. Aber ich möchte jetzt wenn ich auf den Button drücke, dass überprüft wird ob die eingegbene Vokabel vom jTextField2 mit dem array[1], übereinstimmt.

Wenn ja soll int r um 1 erhöht werden, (wenn nicht, dann soll gar nichts passieren), und dann soll die nächste Vokabel ausgegeben.

Ich habe gedacht es so zu lösen, aber es kommt nicht das raus, was ich möchte. :


Java:
final String vokabel = in.readLine();
        System.out.println(vokabel);
        final String[] array = vokabel.split("\\.");
        jTextField1.setText(array[0]);
 
        jButton2.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                int r = 0;
                int f = 0;
 
                if (jTextField2.getText().equals(array[1])) {
 
                    r++;
 
                    System.out.println(r);
                }
 
                String vokabel = null;
                try {
                    vokabel = in.readLine();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                System.out.println(vokabel);
                String[] array = vokabel.split("\\.");
                jTextField1.setText(array[0]);
                jTextField2.setText(null);
            }
 
        });

Jemand eine Idee?

PS: Das System.out.println() ist nur zur überprüfung gedacht.
 

Michael...

Top Contributor
Hab mir jetzt nicht angeschaut was Du vorhast, aber Du verwendest hier zwei Variablen namens array und das ist glaube ich nicht gewollt und vermutlich auch die Ursache dafür, dass es - was auch immer - nicht so funktioniert wie erhofft.
[JAVA=3]final String[] array = vokabel.split("\\.");
...[/code]
[JAVA=26]String[] array = vokabel.split("\\.");[/code]
Empfehlung: sich mal den Gültigkeitsbereich der Variablen newusst machen.
Das final bei der Deklaration das Arrays scheint hier nur eine Krücke zu sein, da diese Variable eigentlich nicht final sein sollte.
 

yax

Bekanntes Mitglied
Die Ausgabe ist:

hund.dog //String vokabeln
1 //r
Katze.cat //String vokabeln
1 //r
Maus.mouse //String vokabeln
1 //r
null //?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
W LocalDate toString und nach Split falsch "erkannt"? Java Basics - Anfänger-Themen 8
sserio Split() -> Regex Frage. Java Basics - Anfänger-Themen 7
A String split funktioniert nicht, wenn mehr als 1 Ziffer vor dem Zeichen steht nach dem er trennen soll? Java Basics - Anfänger-Themen 4
M Frage zur Methode split der Klasse String Java Basics - Anfänger-Themen 32
OnDemand Regex oder Split? Java Basics - Anfänger-Themen 5
I String.split regex Frage Java Basics - Anfänger-Themen 2
JavaClara Fehlermeldung bei split-Methode Java Basics - Anfänger-Themen 12
S String split Java Basics - Anfänger-Themen 12
Dimax String Split Java Basics - Anfänger-Themen 2
J Dynamisches Array durch split()-Funktion? Java Basics - Anfänger-Themen 3
D Kleine Probleme mit Split-Befehlen Java Basics - Anfänger-Themen 5
9 Error bei .split() Java Basics - Anfänger-Themen 2
S Methoden String: split Java Basics - Anfänger-Themen 5
T split innerhalb Klammern ignorieren? Java Basics - Anfänger-Themen 6
MR._FIRE_Flower String.split("(") geht nicht Java Basics - Anfänger-Themen 4
D Input/Output Split am Zeichen | Java Basics - Anfänger-Themen 2
W split()-Methode Java Basics - Anfänger-Themen 4
C Gleichung String Split Java Basics - Anfänger-Themen 6
agent47 Pattern split Java Basics - Anfänger-Themen 2
D BufferedReader/InputStreamReader/Split Java Basics - Anfänger-Themen 2
G String.split(".") Java Basics - Anfänger-Themen 3
F Methoden split() - Mehrere Zeichen Java Basics - Anfänger-Themen 5
R Split ab bestimmter Stelle Java Basics - Anfänger-Themen 9
A String Split Java Basics - Anfänger-Themen 4
K Split und ArrayList Java Basics - Anfänger-Themen 3
JAVAnnik split Methode Java Basics - Anfänger-Themen 1
K How to split my String Java Basics - Anfänger-Themen 2
L String array mit split füllen Java Basics - Anfänger-Themen 14
N split nullpoiner exception Java Basics - Anfänger-Themen 6
L Split + Zeilen einer Datei mit bestimmtem Inhalt löschen Java Basics - Anfänger-Themen 23
P CSV Datei in String Array -> Split -> New Array Java Basics - Anfänger-Themen 2
vandread String.split("\\") führt zu Error?! Java Basics - Anfänger-Themen 8
N Explode in Java (split). Komme nicht weiter. Java Basics - Anfänger-Themen 2
B Split, Exception - Obwohl es gehen MUSS Java Basics - Anfänger-Themen 3
S Probleme mit split Java Basics - Anfänger-Themen 5
N Probleme mit .split("\\.") Java Basics - Anfänger-Themen 6
N String [][] mit .split Java Basics - Anfänger-Themen 13
Helgon Regex Split Java Basics - Anfänger-Themen 2
B Array fehler bei string split Java Basics - Anfänger-Themen 4
L Methoden String.split nach Absätzen? Java Basics - Anfänger-Themen 8
S Split String für | Java Basics - Anfänger-Themen 2
K split() - Delimiter Java Basics - Anfänger-Themen 4
F Split Array auffüllen Java Basics - Anfänger-Themen 8
S Hexstring contains & split Java Basics - Anfänger-Themen 2
R String Delimiter (Split) einlesen Java Basics - Anfänger-Themen 9
R .split() - Problem Java Basics - Anfänger-Themen 5
0 String split und replace geht nicht Java Basics - Anfänger-Themen 17
T Syntax für .split mit Klammern Java Basics - Anfänger-Themen 2
T String Split? Java Basics - Anfänger-Themen 10
F String Split Problem mit "|" Java Basics - Anfänger-Themen 3
D String.split(...) Java Basics - Anfänger-Themen 4
Z split tut nicht, was es soll Java Basics - Anfänger-Themen 3
C Split Fehler? Java Basics - Anfänger-Themen 7
D BufferedWriter, split() und Zeilenumbrüche Java Basics - Anfänger-Themen 5
K Java Split mehrere Zeilen Java Basics - Anfänger-Themen 4
D BufferedReader und .split() Java Basics - Anfänger-Themen 3
J String split-Funktion und Integer Java Basics - Anfänger-Themen 13
X nach split leerzeichen weg Java Basics - Anfänger-Themen 4
M Regex mit Split Java Basics - Anfänger-Themen 3
S String - Gegenteil von Split? Java Basics - Anfänger-Themen 2
L Java: split und trim Java Basics - Anfänger-Themen 6
D String.split(".") geht nicht? Java Basics - Anfänger-Themen 3
M split arbeitet nicht richtig Java Basics - Anfänger-Themen 2
D Split Java Basics - Anfänger-Themen 11
Eldorado Fehler bei String.split Java Basics - Anfänger-Themen 4
S String Split ohne Zeichen abzuschneiden Java Basics - Anfänger-Themen 7
MQue split()- Methode Java Basics - Anfänger-Themen 10
B Split() Funktion Java Basics - Anfänger-Themen 5
M String splitten mit split() Java Basics - Anfänger-Themen 4
T .split(";") nicht gleich große arrays werden erzeu Java Basics - Anfänger-Themen 2
S String split array.length Problem Java Basics - Anfänger-Themen 3
B String ordentlich trennen (regex, split())? Java Basics - Anfänger-Themen 11
J Problem mit Split und String Java Basics - Anfänger-Themen 3
G Probleme mit Split Java Basics - Anfänger-Themen 5
M String.split() und StringTokenizer Java Basics - Anfänger-Themen 2
ARadauer String.split -> unterschiedliche längen Java Basics - Anfänger-Themen 2
H Split läuft nicht wie ich will Java Basics - Anfänger-Themen 4
I <String>.split()? Java Basics - Anfänger-Themen 2
I String, Split, match, wo liegt mein Fehler ? Java Basics - Anfänger-Themen 4
S Worthäufigkeiten zählen nach String.split() Java Basics - Anfänger-Themen 5
F String split-Methode Java Basics - Anfänger-Themen 12
M split() mit anzahl zeichen Java Basics - Anfänger-Themen 2
R split ist komisch Java Basics - Anfänger-Themen 2
G Bei split die regex erhalten Java Basics - Anfänger-Themen 6
P Probleme mit split Java Basics - Anfänger-Themen 4
Q String split bei "" Java Basics - Anfänger-Themen 4
G Problem mit String.split(""); Java Basics - Anfänger-Themen 2
M Problem Dateiarbeit: split und trim Java Basics - Anfänger-Themen 4
C Collection in Verbindung mit String.split speicherlastig Java Basics - Anfänger-Themen 20
C String.split("") einzelne Positionen abfragen Java Basics - Anfänger-Themen 10
D String mit split teilen und leere Felder behalten Java Basics - Anfänger-Themen 4
O String mit split zerlegen Java Basics - Anfänger-Themen 6
G Split Operation: ein oder mehrere Leerzeichen Java Basics - Anfänger-Themen 7
E Was ist bei split() los? Java Basics - Anfänger-Themen 2
F Split und Satzzeichen Java Basics - Anfänger-Themen 2
M Split nur mit einem Kriterium? Java Basics - Anfänger-Themen 4
G Split String Java Basics - Anfänger-Themen 2
G BufferedReader - split-Methode Java Basics - Anfänger-Themen 6
G Habe bei String kein split()? Java Basics - Anfänger-Themen 7
B try & catch Problem mit Exception bzw String.split() Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben