0

好的,第一次发帖,耶!现在我知道这个话题已经被打死了。但这里的问题是:

编写一个程序,从文本文件中读取以空格分隔的单词并按升序显示单词。(如果两个词相同,则只显示一个)。从命令行传递文本文件名。假设文本文件只包含由空格分隔的单词。

现在我已经弄清楚了文件部分的读数。但是我如何“从命令行传递文件名”?然后是唯一性因素。

帮助?

编辑:谢谢你们的帮助。这是我现在的立场:

import java.io.*;
import java.util.*;

public class Splittext {
    public static void main(String[] args) {
        String fileName = args[0];
        Scanner s = null;

        try {
            s = new Scanner(new BufferedReader(new FileReader(fileName)));
                while (s.hasNext()) {
                    System.out.println(s.next());
                }
            } catch (FileNotFoundException fnfe) {
            System.exit(0);
        } finally {
               if (s != null) {
                   s.close();
                }
            }


       TreeSet<String> ts = new TreeSet<String>();

       ts.add(s);

       Iterator it = ts.iterator();

       while(it.hasNext()) {
           String value = (String)it.next();
           System.out.println("Result :" + result);
        }
    }        
}

但这会产生:没有合适的方法添加(java.util.Scanner);方法 java.util.TreeSet.add(java.lang.String) 不适用。

对不起菜鸟问题!真的很感激帮助:)

4

3 回答 3

3

这样做。

public static void main(String args[]) {
    String fileName = args[0];
    Scanner s = null;

    try {
        s = new Scanner(new BufferedReader(new FileReader(fileName));

        while (s.hasNext()) {
            System.out.println(s.next());
        }
    } finally {
        if (s != null) {
            s.close();
        }
    }
}

像这样运行

java classname readthisfile.txt
于 2013-03-18T19:49:26.610 回答
0

但是我如何“从命令行传递文件名”?

public static void main(String args[])
{
    final String filename = args[0];
    // ...
}

然后是唯一性因素。

和排序因素。

  1. 将所有单词插入TreeSet.
  2. 遍历它并打印值。它们将被分类且独一无二。
于 2013-03-18T19:49:31.613 回答
0

当您启动应用程序时,您的main函数已String[] args传递给它,这是您访问输入参数的地方。

例如:

java -cp . my.class.Example Happy Days

会看到 Example 类收到这个:

public static void main(String[] args) {
  // args.length == 2
  // args[0] = "Happy"
  // args[1] = "Days"
}
于 2013-03-18T19:49:50.730 回答