String to Float

Benn001

Mitglied
Hallo,
ich bräuchte Hilfe, bei der Lösung eines Problems:
Ich möchte einen String zu einer Float Variable umwandeln.
Der String wird vorher aus fünf verschiedenen Inputfeldern ausgelesen:
Die Integervariablen sollen also durch Float ersetzt werden.
Weiß jemand wie dass geht?
Danke im vorraus!🙂

Java:
if(durch == true) {

                int ni = 0;

                String d1 = input1.getText();

                String d2 = input2.getText();

                String d3 = input3.getText();

                String d4 = input4.getText();

                String d5 = input5.getText();

                int f1 = 0;

                int f2 = 0;

                int f3 = 0;

                int f4 = 0;

                int f5 = 0;

                if(d1.equals("") == false) {    ni = ni+1;         f1 = Integer.parseInt(d1);}

                if(d2.equals("") == false) {    ni = ni+1;          f2 = Integer.parseInt(d2);}

                if(d3.equals("") == false) {    ni = ni+1;         f3 = Integer.parseInt(d3);}

                if(d4.equals("") == false) {    ni = ni+1;         f4 = Integer.parseInt(d4);}

                if(d5.equals("") == false) {    ni = ni+1;         f5 = Integer.parseInt(d5);}

                float end = f1+f2+f3+f4+f5/ni;

                System.out.print(""+end+"");

                 durch = false;

}
 
Zuletzt bearbeitet:
Bitte immer in code-Tags posten.
Java:
if(durch == true) {
    int ni = 0;
    String d1 = input1.getText();
    String d2 = input2.getText();
    String d3 = input3.getText();
    String d4 = input4.getText();
    String d5 = input5.getText();
    int f1 = 0;
    int f2 = 0;
    int f3 = 0;
    int f4 = 0;
    int f5 = 0;
    if(d1.equals("") == false) { ni = ni+1; f1 = Integer.parseInt(d1);}
    if(d2.equals("") == false) { ni = ni+1; f2 = Integer.parseInt(d2);}
    if(d3.equals("") == false) { ni = ni+1; f3 = Integer.parseInt(d3);}
    if(d4.equals("") == false) { ni = ni+1; f4 = Integer.parseInt(d4);}
    if(d5.equals("") == false) { ni = ni+1; f5 = Integer.parseInt(d5);}
    float end = f1+f2+f3+f4+f5/ni;
    System.out.print(""+end+"");
    durch = false;
}
 
Ich habe das hier in die Class eingefügt:
Code:
public static float parseFloat(String s)
Du kannst in einer Klasse entweder Instanzvariablen oder Methoden deklarieren.
Java:
class Foo {
   
    privat int value; // Instanzvariable
   
    public void doSomething() { // Methode
        // ..code
    }
}
Deines ist irgendwie eine Mischung aus beiden. Die Fehlermeldung besagt, dass du einen Body, das sind die geschweiften Klammern mit dem Code, angeben sollst.

Aber generell sollst du das auch nicht machen, sondern:
Hast du verstanden, was dies hier macht: f1 = Integer.parseInt(d1)?
 
Das Problem ist, dass man in dem Inputfeld kommazahlen angeben soll um einen Durchschnitt zu berechnen. Und ich meine das dass mit int nicht geht
 
Ja der String "d1" wird zu int "f1"
Etwas ausführlicher:

Es gibt eine Klasse "Integer", die über eine Methode parseInt() verfügt, mit der man einen übergebenen String in einen int-Wert umwandeln kann. Das Ergebnis dieser Methode wird im Anschluss an die int-Variable "f1" zugewiesen. https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html#parseInt(java.lang.String)

Es gibt auch eine Klasse "Float" und die hat eine ähnliche Methode. Alles klar?
 
Ja dass ist mir bekannt, so habe ich dass auch versucht. aber Float.parseFlaot(String); funktioniert nicht.

Ich habe dass jetzt anders probiert:

Code:
String s = "34.4";
        double f = Double.parseDouble(s);
        System.out.print(f);

Gibt es Nachteile bei Double?
 
Das hier funktioniert einwandfrei:
Java:
    public static void main(String[] args) {

        String s = "42";

        float f = Float.parseFloat(s);

        System.out.println(f);
    }

Zeig evtl. mal den gesamten Code.
 
Kann ich auch Double.parseDouble(); benutzen

Code:
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JFormattedTextField;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import java.awt.GridLayout;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.JTextPane;
import java.awt.SystemColor;
import javax.swing.LayoutStyle.ComponentPlacement;
import javax.swing.JButton;
import javax.swing.JRadioButton;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.geom.Arc2D.Float;
import java.io.Console;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.concurrent.Executors;
import javax.swing.JMenuBar;
import javax.swing.JRadioButtonMenuItem;
import javax.swing.JMenu;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JMenuItem;
import javax.swing.JSeparator;
import javax.swing.JCheckBox;
import java.awt.event.InputMethodListener;
import java.awt.event.InputMethodEvent;
import javax.swing.JTabbedPane;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.io.IOException;
import java.net.URI;
import java.io.File;
import java.nio.file.*;
import javax.swing.JLabel;
import java.awt.*;



public class fridayPassword extends JFrame {

    private JPanel contentSeite;
    private JTextField consoleEnter;
    private JButton EnterButton;
    private JTextPane consol;
    private JTextField input2;
    private JTextField input1;
    private JTextField input3;
    private JTextField input4;
    private JTextField input5;

    /**
     * Launch the application.
     */
    String a;
    
    public static void main(String[] args) {
        System.out.print("F.R.I.D.A.Y wird gestartet!");
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    fridayPassword frame = new fridayPassword();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });}
    

    /**
     * Create the frame.
     */
    
    
    
            
    
    
    public fridayPassword() {
        
        
        
        setResizable(false);
        setTitle("Controll-Panel");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 552, 277);
        
        
        consol = new JTextPane();
        consol.setEditable(false);
        consol.addInputMethodListener(new InputMethodListener() {
            public void caretPositionChanged(InputMethodEvent event) {
            }
            public void inputMethodTextChanged(InputMethodEvent event) {
            }
        });
        
        
        
        JMenuBar MenüLeiste = new JMenuBar();
        setJMenuBar(MenüLeiste);
        
        JMenu MenüMenu = new JMenu("Men\u00FC");
        MenüLeiste.add(MenüMenu);
        
        JMenuItem Inhalte = new JMenuItem("Inhalte");
        MenüMenu.add(Inhalte);

        JMenuItem Verlassen = new JMenuItem("Verlassen");
        MenüMenu.add(Verlassen);
        
        JMenu EinstellungenMenu = new JMenu("Einstellungen");
        MenüLeiste.add(EinstellungenMenu);
        
        JMenuItem Einstellungen = new JMenuItem("Einstellungen");
        EinstellungenMenu.add(Einstellungen);
        
        JMenu InspektorMenu = new JMenu("Inspektor");
        MenüLeiste.add(InspektorMenu);
        
        JMenuItem SprachInspektor = new JMenuItem("Sprach-Inspektor \u00F6ffnen");
        InspektorMenu.add(SprachInspektor);
        
        JMenuItem RechenInspektor = new JMenuItem("Rechen-Inspektor \u00F6ffnen");
        InspektorMenu.add(RechenInspektor);
        contentSeite = new JPanel();
        contentSeite.setBorder(new EmptyBorder(5, 5, 5, 5));
        setContentPane(contentSeite);
        
        consoleEnter = new JTextField();
        consoleEnter.setColumns(10);
    
        input2 = new JTextField();
        input2.setColumns(10);
        
        input1 = new JTextField();
        input1.setColumns(10);
        
        input3 = new JTextField();
        input3.setColumns(10);
        
        input4 = new JTextField();
        input4.setColumns(10);
        
        input5 = new JTextField();
        input5.setColumns(10);
        
    
        consol = new JTextPane();
        consol.setEditable(false);
        consol.addInputMethodListener(new InputMethodListener() {
            public void caretPositionChanged(InputMethodEvent event) {
            }
            public void inputMethodTextChanged(InputMethodEvent event) {
            }
        });
        
        
        
        //ENTER
        EnterButton = new JButton("Enter");
        EnterButton.addKeyListener(new KeyAdapter() {
        
            Boolean nF = false;
            Boolean Dichte = false;
            Boolean durch = false;
            
            public void keyPressed(KeyEvent e) {
            String invoke = consoleEnter.getText();
            
            //create Folder(Projekt)
            if(nF == true) {
                nF = false;
                String path = input1.getText();
                File Dir = new File(path);
                if(!Dir.exists()) {
                    if(Dir.mkdir()) {
                    endCreate();
                    } } }
            if(invoke.equals("nP") == true) {
                consol.setText("Bitte Namen angeben!\n <NAME>\n");   
                nF = true;
                consoleEnter.setText("");
                }
                
            
            
            //Dichte
            if(Dichte == true) {
                String i1 = input1.getText();
                String i2 = input2.getText();
                double ii1 = Double.parseDouble(i1);
                double ii2 = Double.parseDouble(i2);
                double end = ii2/ii1;
                consol.setText("Die Dichte beträgt: "+end+"");
                Dichte = false;
            }
            if(invoke.equals("dichte") == true) {
                consol.setText("Bitte angeben:\nInput1: m³\nInput2: kg\n\nDaraus wird die Dichte(kg/m³) berechnet.");
                Dichte = true;
                consoleEnter.setText("");
            }
            
            
            //durchschnitt
            if(durch == true) {
                int ni = 0;
                String d1 = input1.getText();
                String d2 = input2.getText();
                String d3 = input3.getText();
                String d4 = input4.getText();
                String d5 = input5.getText();
                int f1 = 0;
                int f2 = 0;
                int f3 = 0;
                int f4 = 0;
                int f5 = 0;
                if(d1.equals("") == false) {    ni = ni+1;         f1 = Integer.parseInt(d1);}
                if(d2.equals("") == false) {    ni = ni+1;          f2 = Integer.parseInt(d2);}
                if(d3.equals("") == false) {    ni = ni+1;         f3 = Integer.parseInt(d3);}
                if(d4.equals("") == false) {    ni = ni+1;         f4 = Integer.parseInt(d4);}
                if(d5.equals("") == false) {    ni = ni+1;         f5 = Integer.parseInt(d5);}
                float end = f1+f2+f3+f4+f5/ni;
                System.out.print(""+end+"");
                 durch = false;
            }
            
            if(invoke.equals("durch") == true) {
                consol.setText("Bitte alle Zahlen angeben aus denen der Durchschnitt gerechnet werden soll!");
                durch = true;
                consoleEnter.setText("");
            }
            
            
            //createNote in Project
            
        
            
            }
        });
        
    
        
        
        
        consol.setBackground(SystemColor.text);
        
        
        
        JLabel lblNewLabel = new JLabel("Input 1:");
        
        JLabel lblNewLabel_1 = new JLabel("Input 2:");
        
        JLabel lblNewLabel_2 = new JLabel("Input 3:");
        
        JLabel lblNewLabel_3 = new JLabel("Input 4:");
        
        JLabel lblNewLabel_4 = new JLabel("Input 5:");
        GroupLayout gl_contentSeite = new GroupLayout(contentSeite);
        gl_contentSeite.setHorizontalGroup(
            gl_contentSeite.createParallelGroup(Alignment.LEADING)
                .addGroup(gl_contentSeite.createSequentialGroup()
                    .addContainerGap()
                    .addGroup(gl_contentSeite.createParallelGroup(Alignment.LEADING)
                        .addGroup(gl_contentSeite.createSequentialGroup()
                            .addGap(7)
                            .addComponent(consol, GroupLayout.PREFERRED_SIZE, 228, GroupLayout.PREFERRED_SIZE)
                            .addPreferredGap(ComponentPlacement.RELATED, 127, Short.MAX_VALUE)
                            .addGroup(gl_contentSeite.createParallelGroup(Alignment.TRAILING)
                                .addComponent(lblNewLabel)
                                .addComponent(lblNewLabel_1)
                                .addComponent(lblNewLabel_2)
                                .addComponent(lblNewLabel_3)
                                .addComponent(lblNewLabel_4))
                            .addGap(22)
                            .addGroup(gl_contentSeite.createParallelGroup(Alignment.LEADING)
                                .addComponent(input5, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
                                .addComponent(input4, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
                                .addComponent(input3, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
                                .addComponent(input2, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
                                .addComponent(input1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)))
                        .addGroup(gl_contentSeite.createSequentialGroup()
                            .addComponent(consoleEnter, GroupLayout.DEFAULT_SIZE, 395, Short.MAX_VALUE)
                            .addPreferredGap(ComponentPlacement.UNRELATED)
                            .addComponent(EnterButton)))
                    .addContainerGap())
        );
        gl_contentSeite.setVerticalGroup(
            gl_contentSeite.createParallelGroup(Alignment.TRAILING)
                .addGroup(gl_contentSeite.createSequentialGroup()
                    .addContainerGap()
                    .addGroup(gl_contentSeite.createParallelGroup(Alignment.LEADING)
                        .addGroup(gl_contentSeite.createSequentialGroup()
                            .addComponent(consol, GroupLayout.DEFAULT_SIZE, 128, Short.MAX_VALUE)
                            .addGap(18))
                        .addGroup(gl_contentSeite.createSequentialGroup()
                            .addGroup(gl_contentSeite.createParallelGroup(Alignment.BASELINE)
                                .addComponent(input1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
                                .addComponent(lblNewLabel))
                            .addPreferredGap(ComponentPlacement.RELATED)
                            .addGroup(gl_contentSeite.createParallelGroup(Alignment.BASELINE)
                                .addComponent(input2, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
                                .addComponent(lblNewLabel_1))
                            .addPreferredGap(ComponentPlacement.RELATED)
                            .addGroup(gl_contentSeite.createParallelGroup(Alignment.BASELINE)
                                .addComponent(input3, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
                                .addComponent(lblNewLabel_2))
                            .addPreferredGap(ComponentPlacement.RELATED)
                            .addGroup(gl_contentSeite.createParallelGroup(Alignment.BASELINE)
                                .addComponent(input4, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
                                .addComponent(lblNewLabel_3))
                            .addPreferredGap(ComponentPlacement.RELATED)
                            .addGroup(gl_contentSeite.createParallelGroup(Alignment.BASELINE)
                                .addComponent(input5, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
                                .addComponent(lblNewLabel_4))
                            .addGap(22)))
                    .addGroup(gl_contentSeite.createParallelGroup(Alignment.BASELINE)
                        .addComponent(consoleEnter, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
                        .addComponent(EnterButton))
                    .addContainerGap())
        );
        contentSeite.setLayout(gl_contentSeite);
        consol.setText("F.R.I.D.A.Y wurde gestartet...");
      
    }

    
    public void endCreate() {
     consol.setText("Datei wurde erstellt!");
    }
    
}
 
Es spricht nichts gegen double.

Aber was anderes:

Du solltest dich dringend etwas mit Java Code Conventions beschäftigen!

Die Namen von Klasse beginnen mit einem Großbuchstaben, z.B. "MeineTolleKlasse".
Die Namen von Variablen und Methoden beginnen mit einem Kleinbuchstaben, z.B. "meineTolleVariable" oder "meineTolleMethode()".

Außerdem sollten Klassen, Variablen und Methoden so benannt werden, dass der Name möglichst klar macht, was deren Aufgabe ist. Dabei sind Klassennamen meist Substantive und Methodennamen meist Verben ("berechneSumme()") oder falls der Rückgabewert ein boolean ist, etwas wie "isLessOrEqual()" oder "hasArguments()". Das Ziel ist immer, dass der entstandene Code möglichst gut lesbar ist und sich sozusagen selbst kommentiert.


Die Einhaltung erleichtert allen Beteiligten das Leben.
 
Zuletzt bearbeitet:
Und evtl. Variablennamen überdenken. i1, ii1, d1, end, ... das sind keine guten Namen.

Die Namen sollten Beschreiben, was in der Variable gespeichert wird.

Das aber auch nur als Ratschlag, der einem das Leben langfristig leichter macht.
 

Zurück
Oben