Я пытаюсь написать программу, которая анализирует текстовый файл, который у меня есть. Если он начинается с «#», я перехожу к следующей строке. Если я сканирую низкую цифру, я устанавливаю ее ширину. Если я встречу слово, я задаю цвет этому слову. Если я столкнулся с большим числом, я устанавливаю x на первое число и y на число сразу после него. Используя всю эту информацию, он отображает линии.Scanner Java issue
Вот моя проблема. Если я выполняю scan.next() в условии, он перемещается на следующее слово/число в текстовом файле, даже если он не соответствует этому условию, и я знаю, что он должен работать. То же самое касается scan.nextInt(). Я не знаю, как я могу проверить следующую строку/int в текстовом документе, не продвигаясь в тексте.
Если вы понимаете мою проблему, не могли бы вы попытаться мне помочь? Спасибо.
package lab7;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Scanner;
import java.awt.Point;
import plotter.PolylinePlotter;
public class CheckpointTwo {
public static void main(String[] args) throws FileNotFoundException
{
File file = new File("C:/Users/Nick/workspace/project7/test.txt");
Scanner scanner = new Scanner(file);
PolylinePlotter plotter = new PolylinePlotter();
while (scanner.hasNextLine())
{
String line = scanner.nextLine();
Scanner scan = new Scanner(line);
String color = "";
int width=0;
while(scan.hasNext())
{
int x=0;
int y=0;
if(scan.next().equals("#"))
{
scan.nextLine();
continue;
}
else if(scan.hasNextInt()==true && scan.nextInt()<10)
{
width=scan.nextInt();
color=scan.next();
}
else if(scan.hasNextInt()==false && scan.hasNext()==true)
{
color=scan.next();
}
else if(scan.hasNextInt()==true && scan.nextInt()>10)
{
x=scan.nextInt();
y=scan.nextInt();
}
plotter.startLine(color, new Point(x,y));
}
}
}
}
Вы изучали методы объекта «Сканер»? http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html искать вещи, начинающиеся с 'hasNext ...' – nem035