拆分文本文件

时间:2013-02-27 23:43:09

标签: java

首先,我是Java新手。

我正在尝试在用户指定的txt文件上使用Split()函数。 它应该使用空格分割文件以输出字符串数组。 我正在使用JFileChooser,但我不知道如何在选定的txt文件上执行拆分。我正在使用扫描仪来执行此操作。

如果有人可以完成代码,请出于某种原因我无法理解: - /

到目前为止我已经做到了:

                JFileChooser chooser = new JFileChooser("C:\\");
            chooser.setFileSelectionMode(JFileChooser.FILES_ONLY);

            FileNameExtensionFilter filter = new FileNameExtensionFilter(
            ".txt and .java files", "txt", "java");
            chooser.setFileFilter(filter);


            int code = chooser.showOpenDialog(null);
            if (code == JFileChooser.APPROVE_OPTION) {
            File selectedFile = chooser.getSelectedFile();
            Scanner input;
            try {
                input = new Scanner(selectedFile);

                while (input.hasNext()) {

                String[] splits = input.next().split(" ");
                } 
                } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } 


}
            }

4 个答案:

答案 0 :(得分:2)

如果需要按空格字符拆分输入,则包含带空格而不是空字符串的字符串。替换

String[] splits = f.split("");

String[] splits = f.split(" ");  // One space

正如其他人所指出的,f未在您的区块中声明。您必须将其声明为String并使用Scanner将输入读入f然后使用split

答案 1 :(得分:0)

f.split("");

f.split("[\\s]+");

使用制表符和双倍空格是安全的。

答案 2 :(得分:0)

什么是f?它没有在任何地方声明,除了在之前使用之后的异常,这没有任何意义。

你的while循环应该写成:

while (input.hasNextLine()) {

    String line = input.nextLine();
    String[] splits = line.split(" ");
    // put the result of split somewhere
}

答案 3 :(得分:0)

    while (input.hasNext()) {

        String[] splits = f.split("");

        input.next();
    }

    System.out.println(f);

首先,永远不会使用splits。其次,input.next()永远不会存储在变量中。另外,我不知道f是什么。尝试这样的事情:

    while (input.hasNext()) {

        String[] splits = input.next().split(" ");
        someList.add(splits);

    }

您可以将someList声明为new ArrayList<String[]>()