2013-04-28 108 views
-3

對於Java我真的很陌生,開始自己研究它....我下載了netbeans和Eclipse,並且這兩個給了我相同的結果..他們不運行代碼(卡住運行)既不讓我調試它 - Eclipse調試器和Netbeans - 沒有響應:?我不知道什麼是錯..和我沒有線索,我不能調試..Eclipse未運行Java代碼

這裏是我的代碼:我試着檢查迴文:

package ClassQueue; 

class Stack { 

    private Object[] Stack_Array = null; 
    public int top = 0; 

    public Stack(int size) { 
     top = 0; 
     Stack_Array = new Object[size]; 
    } 

    public Stack() { 
     this(100); 
    } 

    protected void finalizer() { 
     Stack_Array = null; 
    } 

    final public boolean empty() { 
     return top == 0; 
    } 

    final public boolean full() { 
     return top == Stack_Array.length; 
    } 

    public void push(Object token) { 
     if (!full()) { 
      Stack_Array[top] = token; 
      top++; 
     } 
    } 

    public Object pop() { 
     Object Value_return = -999; 
     if (!empty()) { 
      Value_return = Stack_Array[top]; 
      top--; 
     } 
     return Value_return; 
    } 
}//end of Class_Stack 

class Queue { 

    private Object[] Queue_Array = null; 
    private int Front = 0; 
    private int Rear = 0; 

    public Queue(int size) { 
     Front = Rear = 0; 
     Queue_Array = new Object[size]; 
    } 

    public Queue() { 
     this(100); 
    } 

    protected void finalizer() { 
     Front = Rear = 0; 
     Queue_Array = null; 
    } 

    final public boolean empty() { 
     return Front == Rear; 
    } 

    final public boolean full() { 
     return Rear == Queue_Array.length; 
    } 

    public void queueAdd(Object token) { 
     if (!full()) { 
      Queue_Array[Rear] = token; 
      Rear++; 
     } 
    } 

    public Object queueDelete() { 
     Object Value_return = -999; 
     if (!empty()) { 
      Value_return = Queue_Array[Front]; 
      Front++; 
      return Value_return; 
     } 
     return Value_return; 
    } 
}//end of Class_Queue 

public class ClassQueue { 

    public static void main(String[] args) { 

     int i = 0; 
     String Value_1 = "ABBA"; 


     Stack Value_1_Stack = new Stack(Value_1.length()); 
     Queue Value_1_Queue = new Queue(Value_1.length()); 


     while (i < Value_1.length()) { 
      Value_1_Stack.push(Value_1.charAt(i)); 
      Value_1_Queue.queueAdd(Value_1.charAt(i)); 
     } 

     i = 0; 

     while (Value_1_Stack.pop() == Value_1_Queue.queueDelete()) { 
      i++; 
     } 

     if (i == Value_1.length()) { 
      System.out.println("Palindrome"); 
     } else { 
      System.out.println("NOT"); 
     } 


    }//end of main 
}//end of ClassQueue 
+0

你可以請出示錯誤? – 2013-04-28 18:01:10

+0

你必須使用棧和隊列嗎?或什麼是最簡單的? – smttsp 2013-04-28 18:01:36

+0

我必須使用:s 我不能調試,不知道錯誤在哪裏:s – geekybedouin 2013-04-28 18:09:20

回答

6

你有一個無限循環這裏i沒有被增加:

while (i < Value_1.length()) { 
    Value_1_Stack.push(Value_1.charAt(i)); 
    Value_1_Queue.queueAdd(Value_1.charAt(i)); 
} 

也不要超過StringValue_1長度:

while (i < Value_1.length() - 1) { 
    Value_1_Stack.push(Value_1.charAt(i)); 
    Value_1_Queue.queueAdd(Value_1.charAt(i)); 
    i++; 
} 

另外:使用變量名稱的Java命名約定。

+0

沒有注意到:s – geekybedouin 2013-04-28 18:09:57

+1

不用擔心,通過設置斷點學習在eclipse中使用調試器。這對於發現這些類型的問題很有用 – Reimeus 2013-04-28 18:19:17

-1

您不能使用包名稱的名稱創建類。

運行程序 更改軟件包名稱。

對於ClassQueue在同一個包中創建另一個ClassQueue.java文件。

要調試程序:運行>調試

這會給你的環境進行調試 更改視圖:窗口>顯示視圖>調試