为什么我的int保存不正确? (Java)的

时间:2014-03-26 19:27:09

标签: java

我遇到了问题:

我正在使用我想要保存到int中的输入(字符串)。我想在另一个类中使用该int,但在用户输入后int仍为0。代码如下。我想在另一个类中使用int fsize。我想将其与getFsize()一起使用,但如果我在其他类中使用它,则会显示fsize = 0

public class MineSweeper {
    private boolean gameOn = true;
    int fsize;
    int bpercent;
    ConsoleIO io = new ConsoleIO();

    // start getters and setters
    public int getFsize() {
        return fsize;
    }

    public void setFsize(int fsize) {
        this.fsize = fsize;
    }

    public int getBpercent() {
        return bpercent;
    }

    public void setBpercent(int bpercent) {
        this.bpercent = bpercent;
    }

    // end getters and setters
    // while (gameOn = true) {

    public void startGame() {
        io.writeOutput("Welkom bij het spelletje  Mijnenveger!");
        io.writeOutput("Probeer alle mijnen te vinden in het mijnen veld.");
    }

    public void fieldSize() {
        io.writeOutput("Geef de grootte van het veld (5-20):");
        // read the input from the console
        String input1 = io.readInput();
        if (input1.matches("[0-9]+")) {
            this.fsize = Integer.parseInt(input1);
            if (this.fsize > 20 || this.fsize < 5) {
                System.out
                        .println("*** De grootte moet tussen 5 en 20 liggen! ***");
                fieldSize();
            } else {
                System.out.println(this.fsize);
                }
        } else {
            System.out.println("Vul wel een enkel getal in tussen 5 en 20!");
            fieldSize();
        }
    }

3 个答案:

答案 0 :(得分:0)

您希望Integer.valueOf(input1)代替Integer.parseInt(input1)

答案 1 :(得分:0)

您可以像使用整数基元类型一样使用Integer对象。这是因为Java的Autoboxing,它将int无缝转换为Integers。

您可以在不转换或调用其他方法的情况下说somevalue = input1;input1 = somevalue;

答案 2 :(得分:-1)

您使用的是MineSweeper类的相同实例吗?当声明属性fsize时,它默认以值0开始。如果不调用方法fieldSize()将输入值分配给您启动的每个实例的属性fsize,它将始终为0