Я пишу программу, которая позволяет мне просматривать java-файлы на моем компьютере и видеть, совпадают ли все фигурные скобки, поэтому перед сопоставлением {. Он позволяет мне выбрать файл, а затем после этого он говорит, что я не исключение такого элемента и что строка не найдена. В другой половине времени он просто работает навсегда, заставляя меня думать, что я каким-то образом установил бесконечный цикл. Будут оценены любые советы со сканером или циклом while.Что случилось с тем, как я пользуюсь сканером?
public class BraceChecker {
public static void main(String[] args) {
final JFileChooser fc = new JFileChooser();
int response = fc.showOpenDialog(null);
boolean end = true;
if (response == JFileChooser.APPROVE_OPTION) {
File f = fc.getSelectedFile();
Scanner scan1 = new Scanner(f.toString());
String line;
ArrayListStack Stack1 = new ArrayListStack();
while ((line = scan1.nextLine()) != null && end) {
for (int i = 0; i < line.length(); i++) {
if (line.charAt(i) == '{') {
Stack1.push('{');
}
if (line.charAt(i) == '}') {
if (Stack1.isEmpty()) {
System.out.println("Braces Are Unbalanced");
end = false;
i = line.length();
} else {
Stack1.pop();
}
}
}
}
if (end == true && Stack1.isEmpty()) {
System.out.println("Braces are Balanced");
}
}
}
ли вы шаг через программу в отладчике, в то время как это обработка одной из проблемных файлов? Если нет, это может быть хорошим местом для начала. –
Но как насчет того, когда он говорит, линия не найдена? – trosy