Это мой код:
import java.awt.*;
import java.util.*;
import java.io.*;
public class BabyNames
{
public static int decades = 11;
public static void main (String [] args) throws FileNotFoundException
{
DrawingPanel panel = new DrawingPanel(550,560);
Graphics g = panel.getGraphics();
panel.setBackground(Color.WHITE);
String line = search();
graph(g,line);
}
public static String search() throws FileNotFoundException
{
Scanner util = new Scanner(new File("names.txt"));
String line = "";
String requestedName = name();
String rankings = "";
String rank = "";
while (util.hasNextLine())
{
line = util.nextLine();
Scanner tracer = new Scanner(line);
String name = tracer.next();
if (name.equalsIgnoreCase(requestedName))
{
for (int x =1;x<=decades;x++)
{
rank = tracer.next();
rankings+=rank+" ";
}
}
if (!util.hasNextLine())
{
System.out.print("no data");
break;
}
}
return rankings;
}
public static String name()
{
String requestName = "";
Scanner console = new Scanner(System.in);
System.out.println("Type a name: ");
requestName = console.next();
return requestName;
}
public static void graph(Graphics g,String rankings)
{
g.setColor(Color.YELLOW);
g.fillRect(0,0,550,30);
g.fillRect(0,530,550,30);
g.setColor(Color.LIGHT_GRAY);
for (int x = 0; x <= 11;x++)
{
g.drawLine(0+50*x,30,0+50*x,530);
}
for (int x = 0;x<=10;x++)
{
g.drawLine(0,30+50*x,550,30+50*x);
}
Scanner console = new Scanner(rankings);
g.setColor(Color.RED);
int position = 0;
int firstRank = console.nextInt();
int position2 = firstRank/2+30;
for (int x = 0; x<=decades-1;x++)
{
int rank = console.nextInt();
if (rank==0)
{
position=530;
}
else
{
position = rank/2+30;
}
g.drawLine(0+x*50-50,position2,0+x*50,position);
position2 = position;
}
}
}
Код запрашивает имя, затем ищет это имя в файле и затем отображает рейтинг в другом окне.
Файлотформатирован так:
Это не дает мне исключения такого элемента, когда я запускаю свой код.
Полное сообщение об ошибке:
java.util.NoSuchElementException at
java.util.Scanner.throwFor(Scanner.java:862) at
java.util.Scanner.next(Scanner.java:1485) at
java.util.Scanner.nextInt(Scanner.java:2117) at
java.util.Scanner.nextInt(Scanner.java:2076) at
BabyNames.graph(BabyNames.java:75) at
BabyNames.main(BabyNames.java:13)