Dies ist der Code und wenn ich einen Buchstaben eingeben, würde es nicht die Zeile .matches statt ich habe einen Fehler, aber wenn ich die parseFloat rec1 entfernen und entfernen Sie die sonst wenn (rec1 < total) dann wird die .matches Linie anzeigen bitte helfen Sie mir, wie man das tut, danke im Vorausjava.lang.NumberFormatException Für Eingabe Zeichenfolge Wert ist Buchstaben
CashType c = neu CashType(); c.setVisible (wahr);
c.jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
String receive = c.jTextField1.getText();
float total = total("sellno"+SellNoCount.getText());
float rec1 = Float.parseFloat(receive); //this is line 1525
if(!receive.matches("[0-9]+")){
JOptionPane.showMessageDialog(null,"Enter a Valid Amount");
c.jTextField1.setText("");
}
else if(receive.equalsIgnoreCase("")){
JOptionPane.showMessageDialog(null,"Enter Amount");
}
else if(rec1 < total){
JOptionPane.showMessageDialog(null,"Insufficient Amount");
}
// ERROR
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "asdasd"
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2043)
at sun.misc.FloatingDecimal.parseFloat(FloatingDecimal.java:122)
at java.lang.Float.parseFloat(Float.java:451)
at projectfinal.SellPage$32.actionPerformed(SellPage.java:1525)
Sie müssen prüfen, ob es übereinstimmt, bevor Sie das Parsen versuchen. – shmosel
Und Sie müssen überprüfen, ob es leer ist, bevor Sie überprüfen, ob es übereinstimmt. – shmosel
Überprüfen Sie diese Bedingung, bevor Sie den Wert 'if (! Receive.matches ("[0-9] +")) 'analysieren. –