当前位置:  开发笔记 > 编程语言 > 正文

最有效的习惯用法只从文件中读取一个整数?

如何解决《最有效的习惯用法只从文件中读取一个整数?》经验,为你挑选了1个好方法。

在尝试解决Facebook的拼图"Hoppity Hop"时,http: //www.facebook.com/careers/puzzles.php?puzzle_id = 7,我只从一个文件中读取一个整数.我想知道这是否是最有效的机制呢?

private static int readSoleInteger(String path) throws IOException {
    BufferedReader buffer = null;
    int integer = 0;

    try {
        String integerAsString = null;

        buffer = new BufferedReader(new FileReader(path));

        // Read the first line only.
        integerAsString = buffer.readLine();

        // Remove any surplus whitespace.
        integerAsString = integerAsString.trim();

        integer = Integer.parseInt(integerAsString);
    } finally {
        buffer.close();
    }

    return integer;
}

我看过如何从文件内容创建Java字符串?,但我不知道回答这个问题的成语的效率.

看看我的代码,看起来很多行代码和对象都是一个微不足道的问题......



1> Michael Myer..:

最短的方法是用Scanner:

private static int readSoleInteger(String path) {
    Scanner s = new Scanner(new File(path));
    int ret = s.nextInt();
    s.close();
    return ret;
}

请注意,Scanner吞下任何IOExceptions东西,这样可以简化很多事情.

至于"最有效"......好吧,从磁盘打开文件的简单行为可能是你为此编写的任何方法中最慢的部分.在这种情况下,不要过分担心效率问题.

编辑:我没有意识到整数可以在它的两边都有空格.我的代码目前没有考虑到这一点,但很容易做出Scanner 跳过的事情.我添加了这条线

s.skip("\\s+");

纠正这个.

编辑2:没关系,Scanner在尝试解析数字时忽略空格:

可以通过此类的实例解析为数字的字符串是根据以下正则表达式语法指定的:

(正则表达式)

在上述正则表达式中,空格并不重要.

推荐阅读
周扒pi
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有