0

因此,问题是颠倒用户要输入的句子中的单词顺序。我遇到了很多单词被硬编码的例子,我可以扭转这些没有问题。但是当我尝试为扫描仪输入调整代码时,我什至无法获得打印输入的向量,更不用说反转它了。什么也没有发生。这是代码。如果有人可以帮助我,那就太好了!

public static void main(String[] args) {
      Scanner s = null;
      Vector v = new Vector();
      String words;

      System.out.println("Enter a sentence: ");
      try {
          s = new Scanner(System.in);
            while (s.hasNext()) {
                words = s.next();
                v.add(words);
            }
        } 
        finally {
               if (s != null) {
                   s.close(); // Close scanner when no more input is available
                }
      }  
      System.out.println(v);
  }

PS:我什至无法让矢量显示它的输入,更不用说反转它了..所以我仍然被困在那里。和。它必须是向量,因为这就是任务想要的!

4

2 回答 2

3

这是您的代码,稍作修改。它使用 v.add(0, words) 将读取的最后一个单词插入到第一个位置。我也改成VectorVector<String>。在 unix 中使用 Ctrl+D 退出。

public static void main(String[] args) {
      Scanner s = null;
      Vector<String> v = new Vector<String>();
      String words;

      System.out.println("Enter a sentence: ");
      try {
          s = new Scanner(System.in);
            while (s.hasNext()) {
                words = s.next();
                v.add(0, words);
            }
        } 
        finally {
               if (s != null) {
                   s.close(); // Close scanner when no more input is available
                }
      }  
      System.out.println(v);
  }

例子:

Enter a sentence: 
aa bb cc
[cc, bb, aa]

(Ctrl+D 终止。)

于 2013-03-20T16:18:26.757 回答
3

我已经测试了您的代码,它工作正常(显然,它不会反转向量)。

问题是您需要在完成输入句子时告诉它。

在 Unix 上,这是通过在输入末尾按Ctrl+来完成的。D在 Windows 上,按Ctrl+ ,Z然后按Enter

如果你不这样做,代码就会无限期地坐在那里等待更多的输入。

于 2013-03-20T16:18:30.960 回答