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:
Nun damit rechnen und fertig - so war der Gedanke! In einer TestUI geht das auch alles wunderbar.
TestUI: - hier geht alles!
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
Datei 2 : knoll
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:
// 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:
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

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:
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(",", "."));
//das geht komischerweise
// String ab = "45,45";
// double x = Double.valueOf(ab.replaceAll(",", "."));
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:
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" ;
}
}