2014-03-01 96 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