| Code Kitchen Allgemeines Coder-Forum rund um das Programmieren eigenständiger, ausführbarer Programme. |
Diskussion: StringTokenizer JAVA im Forum Code Kitchen, in der Kategorie Software Home; hallo ich habe folgendes problem und zwar möchte ich aus einer textdatei ein Wort suchen und das möcht ich so ...
![]() |
| | #1 (permalink) |
| Registriert seit: 30.01.05 ![]() Likes: 0 | hallo ich habe folgendes problem und zwar möchte ich aus einer textdatei ein Wort suchen und das möcht ich so machen: Ich lese das File zeilenweise ein und zerlege dann immer die Zeile mit dem stringtokenizer, das geht ja noch ganz gut aber nun habe ich eine IF abfrage hinzugefügt if (st.nextToken() == "tester") System.out.println("Da is er ja!!"); und da fängt er zu spinnen an. Wenn ich debuge springt er in die Class StringTokenizer.class dann Thread.class und dann die Fehlermeldung anbei der code und die fehlermeldung import java.io.BufferedReader; import java.io.FileInputStream; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.StringTokenizer; public class Uebersicht { public static void main(String args[]) throws Exception { BufferedReader in = new BufferedReader(new InputStreamReader( new FileInputStream("c:\\gala.txt"))); //BufferedWriter out = new BufferedWriter(new OutputStreamWriter( // new FileOutputStream("c:\\MyFile1.txt"))); String s = in.readLine(); StringTokenizer st = new StringTokenizer(in.readLine()); while (s != null) { //while (s != null) { while (st.hasMoreTokens()) { System.out.println(st.nextToken()); if (st.nextToken() == "tester") System.out.println("Da is er ja!!"); } st = new StringTokenizer(s); s = in.readLine(); //} //s = in.readLine(); } in.close(); // out.write(s); // out.newLine(); //out.close(); } } Exception in thread "main" java.util.NoSuchElementException at java.util.StringTokenizer.nextToken(Unknown Source) at Uebersicht.main(Uebersicht.java:28) |
| | |
| | #2 (permalink) |
| Member of Honour ![]() Registriert seit: 28.05.03 ![]() Likes: 1 | Code: while (st.hasMoreTokens()) {
System.out.println(st.nextToken());
if (st.nextToken() == "tester")
System.out.println("Da is er ja!!");
} soll wohl eher so aussehen: Code: while (st.hasMoreTokens()) {
String token = st.nextToken();
System.out.println(token);
if (token.equals("tester"))
System.out.println("Da is er ja!!");
}
__________________ http://livehabo.hackerboard.de | http://livebb.sourceforge.net |
| | |
| HaBOT | |
| |
| | #3 (permalink) |
| Wie Ivegotmail schon gesagt hat, du holst dir zweimal den nächsten Token und bist damit einen zu weit. Außerdem werden Strings mit equals vergleicht. Natürlich hab ich auch noch was anzumerken damit dass net als Spam-Post abgetan wird - Benutzung von Code-Tags macht das ganze enorm übersichtlicher - In deinen Dateipfad solltest du statt \\ (sprich \ => normaler Windows Fileseparator) z. B. System.getProperty("file.separator" - du liest hier eine Zeile und gleich danach die nächste. Ich denke nicht, dass das so gedacht ist (schau dir dazu mal die 1. Anmerkung von Ivegotmail an) Code: String s = in.readLine(); StringTokenizer st = new StringTokenizer(in.readLine()); Code: while ((s = in.readLine()) != null)
{// hier wird dann nicht nochmal s = in.readLine() aufgerufen} Hoffe ich konnte dir weiterhelfen. [edit] nochmal @ admins, steht schon im Feedback Forum. Manchmal werden beim Erweiterten Editor auf mysteriöse Weiße Zeilenumbrüche einfach entfernt. | |
| | |
![]() |
| | |
| |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Java | DolphVS | Code Kitchen | 2 | 29.09.05 19:28 |
| Java und JCE | Schlaflos | Code Kitchen | 0 | 13.09.04 11:25 |
| Java | smitti | Windows | 3 | 26.08.04 10:03 |
| JAVA! gibts soziale java fachleute? | yakuza | Code Kitchen | 4 | 03.05.04 00:53 |
| Java und Java script | paya | Code Kitchen | 2 | 29.05.03 09:37 |