Javakod Skoluppgift Hjälp
Håller nu på med det sista inom programmering och har fått i uppgift att göra en parentestestare med hjälp av en stack. Den ska testa om alla parenteser är par och annars skriva ut vad felet är och rad tex. "} på rad 15", koden den ska läsa av och bedöma tas från en textfil på datorn. Får just nu fel på att kompilatorn inte hittar variabeln "line". Hade varit grymt tacksam för lite hjälp då detta är en galet viktig uppgift.
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.FileReader;
import java.util.Stack;
public class Uppgift8A
{
/**
* @param args
*/
public static void main(String[] args) throws FileNotFoundException, IOException
{
// Här MÅSTE den EXAKTA sökvägen till filen stå mellan citat-tecknen
// MEN med dubbla \\-tecken istället för enkla \-tecken
File file = new File("C:\\test.txt");
String line;
BufferedReader input = new BufferedReader(new FileReader(file));
try {
int radNr = 1;
// Följande snurra läser EN hel textrad från textfilen i taget
// Efter varje varv byter den till nästa rad
// Snurran avbryts när det inte finns fler rader att läsa från filen
radNr++;
int StackLängd = line.length();
Stack<String> testare = new Stack<>();
int i = 0;
while (i<StackLängd)
{
String chpush = String.valueOf(line.charAt(i));
//String chpop = String.valueOf(line.charAt(i));
if (chpush == "{" || chpush == "[" || chpush == "(")
{
testare.push(chpush);
i++;
}
else
{
String chpop = testare.pop();
i++;
if ((chpush == "}" && chpop != "{") || (chpush == "]" && chpop != "[") || (chpush == ")" && chpop != "(" ))
i++;
System.out.println("Fel på: " + chpush + " rad nummer " + radNr);
//else
i++;
System.out.println("Fel på: " + chpush + " rad nummer " + radNr);
}
}
}
finally {
input.close();
}
}
}