在CodeEval站点上提交代码

时间:2014-04-01 17:53:01

标签: java unix

CodeEval上的Java程序必须接受文件路径作为参数。我使用命令行参数来执行此操作,但是当我在CodeEval上提交代码时,我得到如下的异常。这个问题有哪些潜在的解决方案?

Exception in thread "main" java.util.NoSuchElementException
    at java.util.StringTokenizer.nextToken(StringTokenizer.java:349)
    at java.util.StringTokenizer.nextElement(StringTokenizer.java:407)
    at Main.FileRead(Main.java:61)
    at Main.main(Main.java:26)

3 个答案:

答案 0 :(得分:3)

这是我用于Codeeval代码的样板Java代码。具体的问题代码通常在processLine方法中。我不使用Scanner或StringTokenizer。我使用String split方法来处理输入。

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class Main implements Runnable {

    private String fileName;

    public Main (String fileName) {
        this.fileName = fileName;
    }

    @Override
    public void run() {
        try {
            processFile();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    private void processFile() throws IOException {
        BufferedReader br = new BufferedReader(
                new FileReader(fileName));
        String line = "";
        while ((line = br.readLine()) != null) {
            processLine(line);
        }
        br.close();
    }

    private void processLine(String line) {
        System.out.println(line);
    }

    public static void main(String[] args) {
        new Main(args[0]).run();
    }

}

答案 1 :(得分:3)

首先,检查class.Class名称应该是' Main'。 其次,您必须在程序中使用CodeEval编辑器中的所有导入。

答案 2 :(得分:0)

如果您不检查是否还有其他令牌(通过调用hasMoreTokens),则会发生这种情况。如果不存在更多令牌并且您调用nextToken,则会收到此异常。但是,如果没有看到其余的代码,就无法知道实际发生了什么。