Zu den Aufzeichnungen der tutorials.de-Live-Workshops
ERLEDIGT
JA
ANTWORTEN
9
ZUGRIFFE
630
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    brikler brikler ist offline der ratlos
    Registriert seit
    Nov 2009
    Beiträge
    5
    salve,

    mit einem streamtokenizer, habe ich ein mehr dimensionales string array (str.arr[x][y]), aus einer datei mit float werten befüllt.

    wie kann ich jetzt mit diesen werten rechnen?
    wie bekomme ich jetzt zum beispiel str.arr[1][1], in einen wert mit dem ich rechnen kann?

    das habe ich bis jetzt erfolglos versucht :
    Code :
    1
    2
    3
    4
    5
    
    float wert1 = float.parseFloat(str.arr[1][1]);
    float wert1 = Float.pareseFloat(str.arr[1][1]);
    float wert1 = new Float(str.arr[1][1]).floatValue();
    float wert1 = (aufgeteilteFM[2][1]).superClone();
    float wert1 = (aufgeteilteFM[2][1]).clone();
    gruß
    Geändert von brikler (22.11.09 um 19:14 Uhr) Grund: Code-Tags eingefügt
     

  2. #2
    Avatar von zerix
    zerix zerix ist offline Hausmeister
    tutorials.de Moderator
    Registriert seit
    May 2005
    Beiträge
    4.329
    Hallo,

    erstmal möchte ich dich bitten, auf deine Groß- und Kleinschreibung zu achten.
    Es gibt etwas, das nennt sich Java-API. Dort kannst du dir alle Methoden anschauen, die eine Klasse zur Verfügung stellt. Dort findest du auch die Methode die du brauchst.

    Du hast sie ja schon mehr oder weniger schon benutzt, leider nur falsch geschrieben.
    Schau mal hier
    http://java.sun.com/j2se/1.5.0/docs/api/

    Gruß

    Sascha
     
    Es ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)

  3. #3
    brikler brikler ist offline der ratlos
    Registriert seit
    Nov 2009
    Beiträge
    5
    Zitat Zitat von Sascha Schirra Beitrag anzeigen
    Hallo,
    Du hast sie ja schon mehr oder weniger schon benutzt, leider nur falsch geschrieben.
    Schau mal hier
    http://java.sun.com/j2se/1.5.0/docs/api/

    Gruß

    Sascha
    was hab ich falsch geschrieben? das mit dem clone?
    ich sehe wohl den wald vor lauter bäumen nicht mehr

    gruß
     

  4. #4
    Avatar von zerix
    zerix zerix ist offline Hausmeister
    tutorials.de Moderator
    Registriert seit
    May 2005
    Beiträge
    4.329
    Ich versuche es nochmal. Deine Tastatur hat normal zwei Shift-Tasten. Ich bitte dich, mindestens eine davon zu nutzen und damit auf deine Groß- und Kleinschreibung zu achten.

    In Java werden eigentlich alle Methoden ziemlich sprechend bezeichnet. Also der Name sagt eigentlich schon aus, was die Methode macht. Clone, wird dann nach meinem Verständnis was klonen. Das macht sie tatsächlich auch. Sie klont nämlich ein Object.
    Deshalb weiß ich jetzt nicht so ganz was du mit clone oder superClone möchtest.

    Du hast es oben nochmal geändert, also hattest du es richtig geschrieben.
    Eigentlich wird nämlich ein String mit Float.parseFloat(str) in einen float-Wert geparst.

    Es wäre vielleicht von Vorteil, wenn du mal sagst, welche Fehlermeldung bei dir kommt.

    Gruß

    Sascha
     
    Es ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)

  5. #5
    brikler brikler ist offline der ratlos
    Registriert seit
    Nov 2009
    Beiträge
    5
    Zitat Zitat von Sascha Schirra Beitrag anzeigen
    Du hast es oben nochmal geändert, also hattest du es richtig geschrieben.
    Eigentlich wird nämlich ein String mit Float.parseFloat(str) in einen float-Wert geparst.

    Es wäre vielleicht von Vorteil, wenn du mal sagst, welche Fehlermeldung bei dir kommt.

    Gruß

    Sascha
    Als Fehlermeldung bekomme ich: float cannot be dereferenced
    ...und mit den Koordinaten lässt mich der compiler nicht rechnen, so bin ich auf die idee gekommen, daß ich mit einer kopie des inhaltes evtl rechnen könnte
    Geändert von brikler (22.11.09 um 20:27 Uhr)
     

  6. #6
    Avatar von zerix
    zerix zerix ist offline Hausmeister
    tutorials.de Moderator
    Registriert seit
    May 2005
    Beiträge
    4.329
    In welcher von den Zeilen?
    Du hast hier float.parseFloat geschrieben. Aber Float muss da groß geschrieben werden.

    Gruß

    Sascha
     
    Es ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)

  7. #7
    brikler brikler ist offline der ratlos
    Registriert seit
    Nov 2009
    Beiträge
    5
    Zitat Zitat von Sascha Schirra Beitrag anzeigen
    In welcher von den Zeilen?
    Du hast hier float.parseFloat geschrieben. Aber Float muss da groß geschrieben werden.

    Gruß

    Sascha
    Wenn ich Float.parseFloat mache, meckert zwar fürs erste der Compiler nicht, aber ich bekomme beim laufen lassen die Meldung:
    Exception in thread "main" java.lang.NumberFormatException: For input string: "Token[n=0.87], line 3"
    at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1242)
    at java.lang.Float.parseFloat(Float.java:439)
    at fhprojekt2.FmDateiEinlesen.main(FmDateiEinlesen.java:80)
    Java Result: 1
     

  8. #8
    Avatar von zerix
    zerix zerix ist offline Hausmeister
    tutorials.de Moderator
    Registriert seit
    May 2005
    Beiträge
    4.329
    Na das liegt daran, dass du nicht nur Zahlen im String stehen hast.

    Schau dir das mal an.
    Da wird der Umgang mit Strings beschrieben.
    http://openbook.galileocomputing.de/...b9da58585b88d3

    Gruß

    Sascha
     
    Es ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)

  9. #9
    Avatar von Johannes7146
    Johannes7146 Johannes7146 ist offline Goldschnabel
    Registriert seit
    Sep 2007
    Ort
    Gütersloh
    Beiträge
    733
    Zitat Zitat von brikler Beitrag anzeigen
    Wenn ich Float.parseFloat mache, meckert zwar fürs erste der Compiler nicht, aber ich bekomme beim laufen lassen die Meldung:
    Du hast Versucht mit den "Wert" Token[n=0.87] zu parsen. Das das nicht klappt ist doch verständlich oder?

    Du musst zuerst die 0.87 aus dem String herausschneiden und diesen dann mit Float.parseFloat(String str) zu einem Float parsen.

    Nutze den Link von Sascha, oder schau auch mal hier vorbei:
    http://java.sun.com/j2se/1.4.2/docs/...Tokenizer.html
    weiterhin besitzt ein String auch eine split() Methode, die ggf. auch ganz hilfreich sein dürfte.

    Hilfreich dürfte es sein, den Wert den man parsen möchte erst einmal auszugeben um sicher zu gehen, dass auch wirklich versucht wird ein gültiger Wert zu parsen.
    Wenn alles läuft, kann man die Ausgabe später auskommentieren oder löschen.

    Falls dabei weiter Probleme auftreten, poste einfach deinen Code und auch sofort deine Fehlermeldung mit. Java-Tags sollte dabei die Lesbarkeit erhöhen.
    Geändert von Johannes7146 (23.11.09 um 11:37 Uhr)
     
    Wenn mein Beitrag dir geholfen hat, würde ich mich sehr über eine positive Bewertung oder ein Danke freuen
    Gruß Johannes
    ::: Homepage :::

  10. #10
    brikler brikler ist offline der ratlos
    Registriert seit
    Nov 2009
    Beiträge
    5
    Zitat Zitat von Johannes7146 Beitrag anzeigen
    Du hast Versucht mit den "Wert" Token[n=0.87] zu parsen. Das das nicht klappt ist doch verständlich oder?
    genau, daß war das problem...da muß man aber erst mal drauf kommen, daß der rest um die 0.87 überflüssiger balast ist, und scheinbar nur da, um den angehenden programierer zu verwirren *grml*

    so bekommt man die worte, oder die erwünschte zahlen.
    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    
      Reader reader = new BufferedReader(new FileReader("datei.txt"));
            StreamTokenizer tokens = new StreamTokenizer(reader);
     
            tokens.slashStarComments(true);
            tokens.ordinaryChar('.');
            tokens.parseNumbers();
            //tokens.eolIsSignificant(true);
     
            int x = 0;
            int y = 0;
            int aufnullstellen = 0;
     
            String eingeleseneDaten[][] = new String[52][17];
     
            for (int tval; (tval = tokens.nextToken()) != StreamTokenizer_EOF;) {
     
                //zahlen werden auf y++ gesetzt
                if (tval == StreamTokenizer_NUMBER) {
                    eingeleseneDaten[x][y] = (Double.valueOf(tokens.nval)).toString();
                    y++;
     
                }
                //worte werden auf y0 gesetzt und x koordinate um eins erhöht
                if (tval == StreamTokenizer_WORD) {
                    x++;
                    y = aufnullstellen;
                    y++;
                }
            }
     

Ähnliche Themen

  1. Array von je einem String und einem Double
    Von Jellysheep im Forum Algorithmen & Datenstrukturen mit Java
    Antworten: 5
    Letzter Beitrag: 06.01.10, 11:37
  2. Antworten: 0
    Letzter Beitrag: 27.10.07, 04:50
  3. XPath Rechnen mit Werten
    Von DayDawns im Forum XML Technologien
    Antworten: 1
    Letzter Beitrag: 21.03.07, 08:45
  4. Array und String in einem?
    Von Azamur im Forum PHP
    Antworten: 0
    Letzter Beitrag: 24.03.05, 18:08
  5. Antworten: 8
    Letzter Beitrag: 28.12.04, 20:07