Java不会使用parseInt

时间:2014-11-06 08:41:09

标签: java io bufferedreader

我目前正在尝试在格式化文件中阅读我正在制作的迷宫游戏。然而,每当我尝试编译时,它都声明它找不到符号并指向try块内的parseInts。我导入了java.lang.Integer。有谁理解为什么Java拒绝这样做?

private Room[][] readRooms(String filepath) throws IOException
{
    int numberOfRooms;
    int numRows;
    int numCols;
    Room[][] grid;

    try
    {
        FileReader fr = new FileReader(filepath);
        BufferedReader br = new BufferedReader(fr);
        String next = null;

        numberOfRooms = parseInt(br.readLine());
        numRows = parseInt(br.readLine());
        numCols = parseInt(br.readLine());

        grid = new Room[numRows][numCols];

        while((next = br.readLine()) != null)
        {
            if (next.equals("***"))
            {

            }
        }

        br.close();
    }

    catch(IOException ex)
    {
        System.out.println("File potentially malformed.");
        System.err.println(ex);
    }

    return grid;
}

注意:字符串"***"是文本文件中的分隔符。

特定的javac输出:

javac "Maze.java" (in directory: C:\Users\Blaise\Programming\csc300\Maze)
Maze.java:40: error: cannot find symbol
   numberOfRooms = parseInt(br.readLine());
                   ^
  symbol:   method parseInt(String)
  location: class Maze
Maze.java:41: error: cannot find symbol
   numRows = parseInt(br.readLine());
             ^
  symbol:   method parseInt(String)
  location: class Maze
Maze.java:42: error: cannot find symbol
   numCols = parseInt(br.readLine());
             ^
  symbol:   method parseInt(String)
  location: class Maze
3 errors
Compilation failed.

5 个答案:

答案 0 :(得分:3)

parseInt是在Integer类中声明的静态方法。要调用它,您需要使用类名限定方法名称,如下所示:

Integer.parseInt(yourString);

或者在课程顶部添加以下静态导入语句:

import static java.lang.Integer.parseInt;

答案 1 :(得分:1)

您应该使用Integer.parseInt(String)。它是Integer类

中的静态方法

答案 2 :(得分:0)

您应该使用静态Integer.parseInt(String)或

import static java.lang.Integer.parseInt;

答案 3 :(得分:0)

您应该使用Integer.parseInt(String)。但是如果你试图导入它,你应该静态导入它:

import static java.lang.Integer.parseInt;

答案 4 :(得分:0)

您无需导入java.lang.Integer,因为始终会导入java.lang个包。使用静态方法Integer.parseInt(str)