2Danke
ERLEDIGT
JA
JA
ANTWORTEN
7
7
ZUGRIFFE
594
594
EMPFEHLEN
-
Hallo liebe Community,
ich bin neu hier und hoffe im richtigen Thread gelandet zusein. Ich möchte gern etwas Rechnen und zwar folgendes...
Problem:
Ich lese einen String-Wert ein über knoll.setKpreis(st.nextToken()); (Bsp.: 10,12) und möchte diesen dann berechnen.
Erdachte Vorgehensweise:
Um dies zu bewerkstelligen muss ich erstmal das Komma gegen einen Punkt ersetzen (kpreis.replaceAll(",", ".")"); und das ganze dann von einem String in einen double Wert umwandeln:
Code :1 2 3 4 5
// String aus Kpreis an String k übergeben String k = knoll.getKpreis(); // Verwandeln des String in double und ersetzen des Kommas durch einen Punkt double x = Double.valueOf(k.replaceAll(",",".");
Nun damit rechnen und fertig - so war der Gedanke! In einer TestUI geht das auch alles wunderbar.
TestUI: - hier geht alles!
Code :1 2 3 4 5
String ab = "45,45"; //String mit deutscher Kommazahl double x = Double.valueOf(ab.replaceAll(",", ".")); // Verwandlung des String in double und double w = x * 2 ; ersetzen des Kommas durch einen Punkt String d = String.valueOf(w); // Zurückwandeln für Ausgabe knoll.setY(d); // In Y übergeben
Vielleicht kann man mir jemand auf die Sprünge helfen und mir sagen wo ich aufgehört habe zu denken
, sozusagen in meinem Kopf den grauen Zellen einen Stoß verpassen.
Vielen Dank im voraus für jegliche Hilfe! Frohe Weihnachten!
Herzliche Grüße!
Hier der gekürzte Quellcode, vielleicht kann mir jemand einen Denkanstoß geben.
Datei 1 : CSV
Code :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 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
import java.io.*; import java.net.*; import java.util.*; public class CSV{ /** * @param args */ public static void main(String[] args) { // Einlesen des Files und spliten BufferedReader buff = null; ArrayList<Knoll> lines = new ArrayList<Knoll>(); try { // File Einlesen und teilen URL myURL = new URL("http://www.meinedomain.net/csv/import.csv"); BufferedReader URLinput = new BufferedReader(new InputStreamReader(myURL.openStream())); buff = new BufferedReader(URLinput); // ggf. myFile String line; while ((line = buff.readLine()) != null) { Knoll knoll = new Knoll(); StringTokenizer st = new StringTokenizer(line, ";"); knoll.setBez1(st.nextToken()); // Spalte 1 wird geladen und übergeben knoll.setKpreis(st.nextToken()); // Spalte 2 wird geladen und übergeben knoll.setUvp(st.nextToken()); // Spalte 3 wird geladen und übergeben knoll.setArtnr(st.nextToken()); // Spalte 4 wird geladen und übergeben knoll.setEan(st.nextToken()); // Spalte 5 wird geladen und übergeben knoll.setBest(st.nextToken()); // Spalte 6 wird geladen und übergeben knoll.setVorschlagversandweg(st.nextToken()); // Spalte 7 wird geladen und übergeben knoll.setMarke(st.nextToken()); // Spalte 8 wird geladen und übergeben String k = knoll.getKpreis(); double x = Double.valueOf(k.replaceAll(",", ".")); [B]//das geht komischerweise // String ab = "45,45"; // double x = Double.valueOf(ab.replaceAll(",", "."));[/B] double w = x * 2 ; String d = String.valueOf(w); knoll.setY(d); lines.add(knoll); // Fügt die Daten zur ArrayList hinzu } restlicher Quellcode....
Datei 2 : knoll
Code :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 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142
public class Knoll implements Comparable<Knoll>{ // Variabelen werden Deklariert private String bez1; private String kpreis; private String uvp; private String artnr; private String ean; private String best; private String vorschlagversandweg; private String marke; double x ; double w ; String y ; public Knoll(){ } // Methoden public String getBez1() { return bez1; } public void setBez1(String bez1) { this.bez1 = bez1; } public String getKpreis() { return kpreis; } public void setKpreis(String kpreis) { this.kpreis = kpreis; } public String getUvp() { return uvp; } public void setUvp(String uvp) { this.uvp = uvp; } public String getArtnr() { return artnr; } public void setArtnr(String artnr) { this.artnr = artnr.replaceAll(" ",""); } public String getEan() { return ean; } public void setEan(String ean) { this.ean = ean; } public String getBest() { return best; } public void setBest(String best) { this.best = best; } public String getVorschlagversandweg() { return vorschlagversandweg; } public void setVorschlagversandweg(String vorschlagversandweg) { this.vorschlagversandweg = vorschlagversandweg; } public String getMarke() { return marke; } public void setMarke(String marke) { this.marke = marke.replaceAll(" ",""); } public double getX() { return x; } public void setX(double x) { this.x = x; } public String getY() { return y; } public void setY(String y) { this.y = y; } // Compare Sortiermethode public int compareTo(Knoll o) { return best.compareTo(o.getBest()); } // Reihenfolge der Ausgabe public String toString(){ return // Neue Spalte wird eingefügt "BLABLA" + "\t" + // trim() entfernt alle umliegenden Leerzeichen artnr.trim() + "\t" + // Marke und Bezeichnung marke +" "+ bez1 + "\t" + // Bestand wird hinzugefügt best.trim() + "\t" + // Vorschlag Versandweg vorschlagversandweg.trim() + "\t" + // Unverbindliche Preisempfehlung uvp.trim() + "\t" + // Neuer Artikelpreis y + "\t" + // Marke marke.trim() +"\t" + // Artikelpreis laut CSV kpreis +"\t" + // Ean des Artikels ean.trim() + "\t" ; } }
-
Waere super wenn ihr euren Code in dieser Form einfuegt:
[JAVA]System.out.println("Test :)");[/JAVA]
wird zu:
Tabs sind uebrigens keine Feinde :)Code java:1
System.out.println("Test :)");
Der "Erledigt Button" beisst net :) Und der "Danke Button" ist auch nicht nur zur zierde
Danke :D
-
Hallo!
Vielen Dank für die Antwort deiner Kristallkugel, sie hat recht. Hier mal die Fehlermeldung, ich habe mich sicherlich etwas verwirrend ausgedrückt.
Der Wert, der in kPreis eingelesen wird ist ein String im Format "10,45". Folgender Fehler ergibt sich beim einlesen:
Code :1 2 3 4 5
Exception in thread "main" java.lang.NumberFormatException: For input string: "KPreis" at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1224) at java.lang.Double.valueOf(Double.java:475) at CSV.main(CSV.java:49)
Zu deiner Frage:
Die Variable k wird mir ausgegeben, scheinbar gibt es ein Problem sobald ich von meinem String in den double Wert möchte und anders herum. Warum ist das so? In der TestUI geht das doch auch alles, nur warum hier nicht?
Herzliche Grüße!Geändert von toni2569 (23.12.10 um 10:55 Uhr) Grund: Hatte was vergessen!
-
Hast du es dir mal mit nem System.out ausgeben lassen ( knoll.getKpreis() )?
Und diesen Wert auch mal extra
ausgeben lassen?Code java:1
k.replaceAll(",", ".")
Waere super wenn ihr euren Code in dieser Form einfuegt:
[JAVA]System.out.println("Test :)");[/JAVA]
wird zu:
Tabs sind uebrigens keine Feinde :)Code java:1
System.out.println("Test :)");
Der "Erledigt Button" beisst net :) Und der "Danke Button" ist auch nicht nur zur zierde
Danke :D
-
23.12.10 10:55 #5
Kann ja auch nicht funktionieren, weil in deinem String keine Zahl steht, sondern "KPreis". Die Fehlermeldung sagt doch alles aus
Man sagt, das Schwert eines Samurai sei seine Seele ...
Mit den Beiträgen ist es wie mit Schwertern: Je besser die Rohstoffe sind und je öfter man diese bearbeitet, desto hochwertiger sind sie.
Das Schmieden ist eine Kunst; Das Schreiben auch ;)
-
Hallo!
@ MiMi
Es gibt einen Fehler sobald ich von meinem String in den double möchte. -> siehe Akeshihiro
@ Akeshihiro
Ja Klar, ich bin ja auch selten dämlich! Der liest aus der Datei natürlich die erste Zeile mit ein, in der kein String steht der zu einem double umgewandelt werden kann, denn das ist die Spalten Beschreibung. Folglich muss dieser Fehler kommen, da habe ich mit keiner Silbe dran gedacht! Einfach die oberste Zeile weg hauen und dann rechnen...
VIELEN DANK
Frohe Weihnachten!
Herzlichste Grüße!
-
Deswegen solltest du dir knoll.getKpreis() ausgeben lassen, dann findet man solche fehler.
->
"Hast du es dir mal mit nem System.out ausgeben lassen ( knoll.getKpreis() )? "Waere super wenn ihr euren Code in dieser Form einfuegt:
[JAVA]System.out.println("Test :)");[/JAVA]
wird zu:
Tabs sind uebrigens keine Feinde :)Code java:1
System.out.println("Test :)");
Der "Erledigt Button" beisst net :) Und der "Danke Button" ist auch nicht nur zur zierde
Danke :D
-
Ich habe das quasi parallel gemacht
Die Glühlampe ging sozusagen zweimal an und erleuchtete die Kugel. Großes DANKE****** So kann ich beruhigt über Weihnachten etwas rumbasteln.
Ähnliche Themen
-
MySQL-Daten einlesen und damit rechnen
Von Jens B. im Forum PHPAntworten: 4Letzter Beitrag: 28.11.09, 18:34 -
XML nach einlesen geht nicht
Von jackisback im Forum Flash PlattformAntworten: 0Letzter Beitrag: 10.02.09, 21:38 -
text nach komma einlesen
Von gazale_m im Forum JavaAntworten: 7Letzter Beitrag: 01.08.07, 08:14 -
Daten nach Trennzeichen einlesen
Von StefanR im Forum PHPAntworten: 1Letzter Beitrag: 21.02.04, 16:05 -
Nach welchem System funktinioniert das einlesen?
Von Johannes Postler im Forum PHPAntworten: 5Letzter Beitrag: 07.12.03, 21:09





Zitieren
Login





