String Tokenizer Probleme

Status
Nicht offen für weitere Antworten.

derToby

Mitglied
Guten Abend zusammen,

ich habe leichte Probleme mit dem String Tokenizer. Vielleicht kann mir jemand dabei helfen. Denke es ist wahrscheinlich nur eine kleine Kleinigkeit, aber wie das so oft ist, kommt es genau auf die an... ;-)

Und zwar habe ich einen String vorliegen, bestehend aus Buchstaben und Zahlen. Ich möchte ihn in gewünschter Weise (ohne " und ohne das Komma ) formatiert vorliegen haben, nur leider komm ich nicht weiter:

Code:
		String ints;
		ints ="\"26 Aug 2005 11:00:07,531\"";
		System.out.println( "Anfang: " + ints );
		
		StringTokenizer tokenizer = new StringTokenizer( ints, "\"," );
		String numbers[] = new String[tokenizer.countTokens()];
    
		for ( int i = 0; tokenizer.hasMoreTokens(); ++i ) {
  			numbers[i] = tokenizer.nextToken();
		}

		for(int i=2;i<numbers.length;i++){
		     System.out.println("////" +  numbers[i]);
		}

Was ist am Code falsch?

Ist es eigentlich auch möglich mit dem Tokenizer alles nach dem Komma einfach zu löschen?

schon mal vielen dank

derToby
 
Verwendest du Java 1.4 oder höher ?

Hier mal ein paar Anregungen:
Code:
    ints = ints.replaceAll("[\\,]", ""); // Komma ersetzen    und
    ints = ints.replaceAll("[\\,\"]", ""); // " ersetzen      oder
    ints = ints.replaceAll("[\"\\,]", ""); // Beides gleichzeitig ersetzen
    
    int komma = ints.indexOf(",");   // position des Komma ermitteln 
    ints = ints.substring(0, komma); // Teilstring von 0 bis "komma" bilden
 
Ich nutze die version 1.4.2.
Werd mal schaun, ob ich nicht eine neuere installiere. Würde Sinn machen.

Danke für die Hilfe! Hatte irgendwie nur den Tokenizer im Kopf, hatte wohl schon vorher zuviel mit ihm gearbeitet. ;-)
Aber so ist eindeutig viel besser. Wie geht ihr denn vor, wenn ihr vor einem Problem steht, z.b. das Formatieren des Datum wie in dem Fall? Wie bringt ihr in Erfahrung, was euch da am besten weiterhilft? Find als Newbie die API recht unübersichtlich, wenn man keinen Anhaltspunkt zum suchen hat.

Bei der Schleife hatte ich bei meiner Fehlersuche das i bei 2 starten lassen. Beim einfügen ins Forum hab ichs einfach übersehen.

thx!

derToby
 
Hi
ich will ein kleines Programm mit StringTokenizer schreiben.
Quellcode🙁das Programm ist noch nicht fertig, läuft wahrscheinlich auch nicht richtig, es geht mir nur um die Fehlermeldung)
:
Code:
import java.io.*;
import java.util.StringTokenizer;

public class StringTokenizer
{
  public static void main(String[] args)
  {
    String zeile=null,delim=" ",token=null;
    String quelle="Datei.txt";
    StringBuffer ausgabe = new StringBuffer();
    StringTokenizer st=null;
    FileReader fr = new FileReader(quelle);
    BufferedReader br = new BufferedReader(fr);
    while((zeile = br.readLine())!=null)
    {
      st=new StringTokenizer(zeile,delim);
      while(st.hasMoreTokens())
      {
         token=st.nextToken();
        ausgabe=ausgabe.append("\t"+token.trim());
      }
    }
  }
}

StringTokenizer.java:16: cannot find symbol
symbol  : constructor StringTokenizer(java.lang.String,java.lang.String)
location: class StringTokenizer
      st=new StringTokenizer(zeile,delim);
         ^
StringTokenizer.java:17: cannot find symbol
symbol  : method hasMoreTokens()
location: class StringTokenizer
      while(st.hasMoreTokens())
              ^
StringTokenizer.java:19: cannot find symbol
symbol  : method nextToken()
location: class StringTokenizer
         token=st.nextToken();
                 ^
3 errors
Ich hab es nun anhand einer Vorlage erstellt, jedoch gab es beim ersten TestCompilieren diese Fehlermeldung.
Wo liegt der Fehler, dass der Compiler die StringTokenizer nicht kennt? Ich habe alle benötigten Pakete importiert.


Mfg
 
Hi,
denn delimeter " " benutzt der StringTokenizer automatisch, brauchst also nur den String (zeile) zu übergeben.
Was die Fehlermeldungen angeht, vermut ich einfach mal, das des daran liegt, dass du deine Klasse StringTokenizer genannt hast. Gib deiner Klasse 'nen anderen Namen dann dürft's gehen!
Dein Prog benutzt nämlich deine eigene Klasse als StringTokenizer, deswegen kann der Compiler den Konstruktor und die Methoden nicht finden, da sie gar nicht in deiner Klasse existieren!
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben