在ArrayStack中推送()等

时间:2010-10-23 20:13:03

标签: java

对于我的任务,我必须创建一个ArrayStack,一个StackADT,现在我必须创建一个程序来接受一个字符串并反向输出。

现在这听起来很简单,但我不知道如何将某些东西推入阵列。我一直在谷歌上搜索这个,并找不到一个有意义的实际答案。

具体来说,我无法将主程序链接到实际数组,然后将输入字符串链接到push()。

public class ReverseSentenceMain {

 public static void main (String[] args)
   {


 AssignmentArrayStack stack = new AssignmentArrayStack();
 //private AssignmentArrayStack<String> stack;

 public ReverseSentenceMain()
 {
  stack = new AssignmentArrayStack<Integer>();
 }

   String sentence;
   String result = null;
   String words;
   stack = (T[])(new Object[initialCapacity]);
   Scanner in  = new Scanner(System.in);
   System.out.println("Enter a sentence");


   }
}

我感谢您的帮助和感谢您的时间

2 个答案:

答案 0 :(得分:0)

您应格式化代码。按ctrl + K或使用小101010图标。

反正。堆栈类应该有一个push方法。你需要得到这个句子。你可以遍历句子,然后将字符推入堆栈。一旦你这样做,那么你可以弹出字符以反向顺序打印字符串。

loop through string
    stack.push(string[i])
while(currChar = stack.pop())
    print currChar (or store to another variable)

我相信这会奏效。我已经用java做过一段时间了。

堆栈实际上不是一个数组。它更像是一个链表。它添加一个元素作为链表中的第一个元素,然后更新指针。

Acutally继承了一个不错的例子http://www.javacoffeebreak.com/faq/faq0037.html

我只是注意到你想要翻转句子而不是单词,所以做了codejavaforfood所说的并用扫描仪标记它。我记得你可以做到这一点。它将读取每个空格。你得到那个令牌并将其添加到堆栈中。但是某种类型的概念。

答案 1 :(得分:0)

您可以通过在扫描仪上调用next来开始扫描。

sentence = in.next();

然后在空格上执行拆分,将句子分成您推入堆栈的标记。我认为扫描仪可以为您完成拆分。查看Scanner JavaDoc或String JavaDoc以获取更多信息。