2013-02-18 1 views
-2

Heres мой код im новый для стеков и не знает, как их реализовать, особенно с буферизованным считывателем. Я не знаю, как реализовать код стека, новый для программирования. Мне нужно написать программу, которая изменит направление чтения из моего txt-файла и распечатает его.Как использовать bufferedreader для чтения моего текстового файла и вставки его в стек Java

try 
{ 
    BufferedReader in = new BufferedReader(new FileReader("GoingThere.txt")); 
    String line = in.readLine(); 
    while(line != null) 
    { 
      line.replace("West","East"); 
      line.replace("East","West"); 
      line.replace("North", "South"); 
      line.replace("South", "North");  
      line = in.readLine(); 
    } 
} 
catch(FileNotFoundException e) 
{ 
    System.out.println("File Not Found"); 
} 
catch(IOException e) 
{ 
    System.out.println("IO Exception Found."); 
} 
+0

Что вы пытаетесь достичь? –

+0

В чем вопрос? Я не вижу в вашем коде никакого стека. –

+0

в любом случае - строка кода. («Запад», «Восток»); line.replace («Восток», «Запад»); изменит «Восток» на «Запад», но «Запад» останется «Западом», потому что его дважды меняют. –

ответ

0
The Same of your Codes but I Added The Stack Hope you Understand it 
The implementation of stack : 
Stack <String> stack = new Stack<String>(); 
stack.push(String); 
stack.pop(); 

here is the Same Example : 

     Stack <String> stack = new Stack<String>(); 

    try 
     { 
     BufferedReader in = new BufferedReader(new FileReader("GoingThere.txt")); 
     String line = in.readLine(); 
     String a,b,c,d; 
     while(line != null) 
     { 
     System.out.println(a=line.replace("West","East")); 
     System.out.println(b=line.replace("East","West")); 
     System.out.println(c=line.replace("North", "South")); 
     System.out.println(d=line.replace("South", "North")); 

     stack.push(a); 
     stack.push(b); 
     stack.push(c); 
     stack.push(d);  
     System.out.println("----------------- Stack Pushed -----------------"); 
     line = in.readLine(); 
     } 
     System.out.println("Pop is Begin :"); 

     while(!stack.isEmpty()){ 

      System.out.println(stack.pop()); 
     } 
     } 

     catch(FileNotFoundException e) 
     { 
      System.out.println("File Not Found"); 
     } 
     catch(IOException e) 
     { 
      System.out.println("IO Exception Found."); 
     } 
0

Ваш вопрос оставляет меня глубоко смущенным. Однако из вашего кода и имени текстового файла я могу экстраполировать то, что вы пытаетесь сделать. Я предполагаю, что у вас есть школьное задание, которое дает вам список направлений для A -> B. Вам необходимо отменить эти направления, используя стек, чтобы дать B -> A. Исходя из этого предположения, попробуйте:

Stack st = new Stack(); 
while (line != null) { 
    st.push(line); 
    line = in.readLine(); 
} 

Затем вы можете использовать st.pop() для восстановления ваших линий из стека в обратном порядке.

+0

Я не уверен, что ему разрешено использовать готовый 'Stack' – Maroun

+0

. Я честно не уверен ни о чем в этом вопросе. Это слишком расплывчато. При необходимости OP может поменять свою собственную реализацию стека. – Aurand

+0

Действительно. Кто знает :) – Maroun