java - 使用堆栈反转单词

标签 java stack reverse

我不知道为什么这会给我一个错误。我在 pop 方法中,我想返回存储在顶部位置的值。尽管它说它们是不兼容的类型。我不明白为什么这应该是一个问题,因为我只想在该位置打印出字符。这是一个更大计划的一部分,只是为了让您知道并且将从不同的类(class)那里得到消息。

public class Stack
{
private int maxSize;
private String[] stackArray;
private int top;
/**
 * Constructor for objects of class Stack
 */
    public Stack(int a)
    {
      maxSize = a;
      stackArray = new String [maxSize];
       top = -1;
    }

   public void push(String j)
   {
     top++;
     stackArray[top] = j;
   }  

   public char pop()
   {
     return stackArray[top--];//Error is here
   }

}

最佳答案

stackArray 是一个 string 数组,方法的返回类型是 char

<小时/>

Reversing word with Stack

如果您想使用 Stack 对象反转单词,请考虑使用 char 数组而不是 String 数组

class Stack
{
private int maxSize;
private char[] stackArray;
private int top;
/**
 * Constructor for objects of class Stack
 */
    public Stack(int a)
    {
      maxSize = a;
      stackArray = new char [maxSize];
       top = -1;
    }

   public void push(char j)
   {
     top++;
     stackArray[top] = j;
   }  

   public char pop()
   {
     return stackArray[top--];
   }

   public int getSize(){
     return maxSize;
   }
}

以及以下测试用例:

        String s = "test";
        Stack st = new Stack(s.length());
        
        for(char c : s.toCharArray())
            st.push(c);
        
        for(int i = 0; i <st.getSize();i++)
            System.out.print(st.pop());

输出:

tset

关于java - 使用堆栈反转单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20200607/

相关文章:

Java如何从类类型设置Vector类型

Java Stack - 修改堆栈中的最后一个元素

c - 如何用科学记数法计算小数和 float - 例如{1.23e4}。在后缀中?

django - 重定向 Django View

css - 反转CSS动画

java - 如何使用谓词函数过滤 Java 中的列表?

java - 使用 j2html 的登录表单示例

c - 从 C 文件中读取输入时反转数组的问题

java - JAVA 如何解密由 PHP 加密的 base64 编码和 RIJNDAEL 256 数据?

python - 如何防止循环堆栈中的重复值?