对于我的任务,我必须创建一个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");
}
}
我感谢您的帮助和感谢您的时间
答案 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)