Probably very easy question about isNaN() java

  • #1
BiGyElLoWhAt
Gold Member
1,573
118
this is throwing me an error
while(! isNaN(s.next()))
"The method isNaN(String) is undefined for the type ProgressReport"
s is a scanner.

I'm just trying to tokenize a text doc of the form
int
String int ... int
...
String int .... int
int
String int ... int
...
String int ... int
etc.

Oh yea, the question...
Why? What am I doing, or what do I need to do?
 

Answers and Replies

  • #2
35,442
11,883
isNaN expects a number, not a string. Did you try converting the string the a number first?
 
  • #3
263
119
isNaN expects a number, not a string. Did you try converting the string the a number first?

I also assume that the OP isn't trying to check for NaN but is actually wants some sort of IsInteger function like Integer.parseInt() but to that one on his data requires exception handling.
 
Last edited:
  • #4
BiGyElLoWhAt
Gold Member
1,573
118
Yea, I changed how I'm doing it.
Java:
import java.io.*;
import java.util.*;
import java.lang.*;

public class ProgressReport{   
   
    File file = new File("grades.txt");   
    Student[][] student;
    int[] scores;
    String name;
   
   
    public ProgressReport() throws FileNotFoundException{
        readInputFile();
    }
   
   
    private void readInputFile() throws FileNotFoundException{
        Scanner s = new Scanner(file);   
        Scanner line;
        int[] sec = {0,0};
        int k = -1;
        int j = -1;
       
        while(s.hasNextLine())
        {
            String str = s.nextLine();
            k++;
            if(str.length() == 1)
            {
                j++;
                sec[j] = Integer.parseInt(str);
            }
            else{
                line = new Scanner(str);
                while(line.hasNext())
                {
                    try
                    {
                        for(int i =0; ;i++)
                        {   
                            scores[i] = Integer.parseInt(line.next());
                        }
                    }
                    catch(Exception e)
                    {
                        name = line.next();
                    }
                   
                   
                }
                student[j][k] = new Student(name, scores);

               
            }
           
           
        }
    }



}
 
  • #5
BiGyElLoWhAt
Gold Member
1,573
118
Haven't done java in a while, so I might be doing things stupidly.

If I use next() in a try block, is that going to skip that token? So in other words, will this give me a string number for my name value?
 
  • #6
BiGyElLoWhAt
Gold Member
1,573
118
The file I'm working with is:
Section number //single digit
Name Score Score Score Score Score //Student data
Student data
...
Section number
student data
student data
 
  • #7
BiGyElLoWhAt
Gold Member
1,573
118
Hmmm... I'm having some errors. I'm getting the string correctly, but I'm not filling my scores variable, and am crashing everytime I try to create a student.
 

Related Threads on Probably very easy question about isNaN() java

  • Last Post
Replies
1
Views
2K
  • Last Post
Replies
4
Views
1K
  • Last Post
2
Replies
28
Views
2K
Replies
6
Views
3K
V
Replies
4
Views
2K
  • Last Post
Replies
2
Views
2K
  • Last Post
Replies
3
Views
1K
  • Last Post
Replies
2
Views
2K
  • Last Post
Replies
5
Views
4K
Replies
2
Views
4K
Top