Wie kann ich mit Werten aus einem String Array rechnen?

brikler

der ratlos
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:
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ß
 
Zuletzt bearbeitet:
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
 
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
 
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 :(
 
Zuletzt bearbeitet:
In welcher von den Zeilen?
Du hast hier float.parseFloat geschrieben. Aber Float muss da groß geschrieben werden.

Gruß

Sascha
 
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
 
Zuletzt bearbeitet von einem Moderator:
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/api/java/util/StringTokenizer.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.
 
Zuletzt bearbeitet:
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.
Java:
  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++;
            }
        }
 

Neue Beiträge

Zurück