Note that there are some explanatory texts on larger screens.

plurals
  1. POjava mismatch or never ending program
    primarykey
    data
    text
    <p>My code is supposed to read input from a .txt file, and then do different things to sort it. The first int is the length. My main problem is I can not figure out why I keep getting a mismatch error, or if i put in 'junk' statements, the program never finishes. I'll post the .txt first, and then the program. </p> <pre><code>15 Smith, John 26 Baker Jones, Susan 15 Student Mouse, Mickey 31 Theme park employee Mouse, Mighty 48 Cartoon super hero Anderson, William 35 Computer Programmer Parker, Cindy 18 Author McCain, John 20 Student Armstrong, Michelle 17 Student Thompson, Anne 29 Doctor Li, Steve 15 Student James, Tanya 20 Student Moore, James 32 Teacher Andrews, Julie 75 Actress Obama, Michelle 46 Lawyer Michaels, Todd 51 Student </code></pre> <p>//Don't forget to copy the blank line at the end.</p> <p>program starts here.</p> <pre><code>import java.util.Scanner; import java.io.*; public class SortAndDisplayCustomerData { public int length; //The length of the names, ages, and occupations arrays public String[] names; public int[] ages; public String[] occupations; public int count; //The length of the studentNames and studentAges arrays public String[] studentNames; public int[] studentAges; public int i, minPos, Temp2, y, minVal; public String Temp, Temp3, temp2, minVal2; public void getDataFromFile() { Scanner keyboard = new Scanner(System.in); Scanner inputStream = null; System.out.println("wtf"); try { inputStream = new Scanner(new FileInputStream("NameAgeOcc.txt")); } catch(FileNotFoundException error) { System.out.println("Unable to open input file."); System.exit(0); } System.out.println("wtf2"); length=inputStream.nextInt(); //String junk = keyboard.nextLine(); System.out.println("wtf3"); names = new String[length]; ages = new int[length]; occupations = new String[length]; for(i=0;i&lt;length;i++) { names[i]=inputStream.nextLine(); ages[i]=inputStream.nextInt(); occupations[i]=inputStream.nextLine(); } inputStream.close(); } public void displayAllFileData() { System.out.println("wtf3"); System.out.printf("%-25s%-8s%24s%n","Names"," Ages"," Occupations"); for(i=0;i&lt;length;i++) { System.out.printf("%-25s%6d%-24s%n",names[i],ages[i],occupations[i]); } } public void sortAllDataByAge() { for(i=0;i&lt;length;i++) { minVal=ages[i]; minPos=i; for(y=i+1;y&lt;length;y++) { if(ages[y]&lt;minVal) { minVal=ages[y]; minPos=y; } } Temp2 = ages[minPos]; ages[minPos] = ages[i]; ages[i] = Temp2; Temp = names[minPos]; names[minPos] = names[i]; names[i] = Temp; Temp3 = occupations[minPos]; occupations[minPos] = occupations[i]; occupations[i] = Temp3; } } public void extractStudentData() { count=0; for (i=0;i&lt;length;i++) { if(occupations[i].equalsIgnoreCase("student")) count++; } int j=0; studentAges = new int[count]; studentNames = new String[count]; for (i=0;i&lt;length;i++) { if(occupations[i].equalsIgnoreCase("student")) { studentAges[j]=ages[i]; studentNames[j]=names[i]; j++; } } } public void displayStudentData() { System.out.printf("%n%-25s%-8s%n","Names"," Ages"); for (i=0;i&lt;count;i++) { System.out.printf("%-25s%6d%n",studentNames[i],studentAges[i]); } } public void sortStudentDataAlpha() { for(i=0;i&lt;count;i++) { minVal2=studentNames[i]; minPos=i; for(y=i+1;y&lt;count;y++) { if(studentNames[y].compareToIgnoreCase(minVal2)&lt;0) { minVal2=studentNames[y]; minPos=y; } } Temp = studentNames[minPos]; studentNames[minPos] = studentNames[i]; studentNames[i] = Temp; Temp2 = studentAges[minPos]; studentAges[minPos] = studentAges[i]; studentAges[i] = Temp2; } } } </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.
 

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