Note that there are some explanatory texts on larger screens.

plurals
  1. POEmpty string in number formatting
    primarykey
    data
    text
    <p><a href="http://img99.imageshack.us/img99/1398/assignment.jpg" rel="nofollow noreferrer">This</a> is my assignment: </p> <p>Here are my questions:</p> <ol> <li>How can I fix this error: </li> </ol> <blockquote> <p>Exception in thread "main" java.lang.NumberFormatException: empty String at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1012) at java.lang.Double.parseDouble(Double.java:527) at extracredit.Main.readData(Main.java:72) at extracredit.Main.main(Main.java:27)</p> </blockquote> <ol start="2"> <li>Are there any other problems that you can see with this program?</li> </ol> <p>Here's my code so far:</p> <pre><code> import java.io.*; import javax.swing.JOptionPane; import java.util.*; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { String fname = "data.txt"; //Read in the data file for use in the array String pass= JOptionPane.showInputDialog("Please enter the " + "password to continue:"); /*Have the user enter the password to access the file. */ checkPass(pass); // Verify that the password is correct before continuing. readData (fname); // Read data, print output and save output file. } private static void checkPass (String pass) { String password= "INF260"; int passCount= 0; if (pass.equals(password)) { System.out.println("The password is correct. Continuing..."); } else { do { pass= JOptionPane.showInputDialog("Please re-enter the" + "password:"); passCount++; } while (!pass.equals(password) &amp;&amp; passCount &lt; 2); if (!pass.equals(password)) { System.out.println("You have tried to enter the " + "password too many times. Exiting..."); System.exit(0); } else { System.out.println("The password is correct. Continuing..."); } } } public static void readData (String data) throws IOException{ FileReader inputData= new FileReader (data); BufferedReader findNum= new BufferedReader (inputData); String str= findNum.readLine (); int count=-1; int countNum= 0; double total= 0; double min= 0; double max= 0; double average= 0; FileWriter writeFile = new FileWriter("sales.txt"); PrintWriter printFile = new PrintWriter(writeFile); while (str != null) { double num= Double.parseDouble (str); if (count == 0){ countNum++; // counter of Reciepts to use } str = findNum.readLine(); } double [][] input = new double [countNum][10]; total= getCurrentTotal(input); /*This will get the total from the method getCurrentTotal.*/ min= getCurrentMin(input); /*This will get the minimum value from the method getCurrentMin.*/ max= getCurrentMax (input); /*This will get the maximum value from the method getCurrentMax.*/ average= (total / countNum); //Calculate the average. System.out.println("The List of Today's Sales:"); for (int row = 0; row &lt; input.length; row++){ System.out.println (); System.out.println("Customer " + row + "\t"); for (int column = 0; column &lt; input[row].length; column++){ if (input [row].length &lt; 10){ System.out.println(input[row][column] + "\t"); str = findNum.readLine(); } else{ System.out.println ("There are too many receipts" + " for one Customer.\n"); System.exit (0); } } } System.out.println ("There are " + countNum + "receipts in the list."); /*This will print the total of receipts in the list.*/ System.out.println ("The total of today's sales is $" + total); /* This will print the total of the sales for the day.*/ System.out.println ("The average of today's sales is $" + average); /* This will print the average sale total.*/ System.out.println ("The highest receipt is $" + max); /* This will print the highest sale.*/ System.out.println ("The lowest receipt is $" + min); /* This will print the lowest sale.*/ Date date = new Date(); System.out.println ("\n The current time is:" + date.toString()); /* This will print the current date and time */ } public static double getCurrentTotal (double [][] input){ double totalAmount = 0; for (int row = 0; row &lt; input.length; row++){ for (int column = 0; column &lt; input [row].length; column++){ totalAmount += input [row][column]; } } return totalAmount; } public static double getCurrentMin (double [][] input) { double currentMin = input[0][0]; for (int row = 0; row &lt; input.length; row++){ for (int column = 0; column &lt; input [row].length; column++){ if (currentMin &gt; input[row][column]) currentMin = input[row][column]; } } return currentMin; } public static double getCurrentMax (double [][] input){ double currentMax = input[0][0]; for (int row = 0; row &lt; input.length; row++){ for (int column = 0; column &lt; input [row].length; column++){ if (currentMax &lt; input[row][column]){ currentMax = input[row][column]; } } } return currentMax; } } </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload