2014-03-01 147 views
0

試圖學習使用堆棧。我的推送方法有什麼問題?實施堆棧:推出的字符在堆棧中爲空

 input = kbd.next(); 
     // pushes individual characters onto the stack 
     for (int i = 0; i < input.length(); i++) { 

      Character ch = input.charAt(i); 
      stack.push(ch); 

public void push (T element) 
{ 
    //System.out.print("\n"); 
    // System.out.print(element); 



    if (size() == stack.length) { 
     expandCapacity();} 

     stack[top] = element; 
     top++;   

在堆棧使用泛型我推法,所以我很奇怪,爲什麼字符不進去。還用繩子測試。我認爲這是關於Java的特定問題,而不是我沒有正確編寫push()方法。

+0

你得到什麼例外獲取輸入後,輸入的值傳遞給方法?堆棧跟蹤? –

+1

@AniketThakur他/她明確表示問題在於堆棧中存在空值,而不是拋出異常。 –

+0

無。只用打印語句進行調試。我在push()方法的行之前放置了print語句,並且除了應該保存我的名稱的6個數組元素都保留空值之外,所有內容都正常工作。感謝您的答覆。 – user3102978

回答

0

可能的原因是輸入字符串不能訪問該方法,要解決,可以使用兩種方法(可以是其他方法)。

1)

Write input = kbd.next();在方法中;

public void charToStack() { 
input = kbd.next(); 

for (int i = 0; i < input.length(); i++) { 

     Character ch = input.charAt(i); 
     stack.push(ch); 


} 

}

2)從鍵盤

public void charToStack(String input) { 

    for (int i = 0; i < input.length(); i++) { 

    Character ch = input.charAt(i); 
    stack.push(ch); 


} 
+0

任何人都在意給予一些輸入? – user3102978