Java boolean始终使用Scanner返回false

时间:2015-03-22 05:28:55

标签: java

我创造了一些纯粹用于个人的东西来生成随机的代码"在需要时,使用Scanner工具来确认生成的代码是否适用于某种类型的用户,但无论我输入什么,boolean isFull都返回false。

感谢Rohit Jain,我意识到了我的错误。

import java.util.*;

public class Generate {

public static int minNum = 1;
public static int maxNum = 9999999;
public static int maxLast = 9;
public static int randomGen;
public static int randomLast;
public static boolean isFull = false;
static Scanner uIn = new Scanner(System.in);

public Generate() {
    System.out.print("Is the user a Full Affiliate? Y/N \n ");
    if(uIn.hasNextLine()){
    //OLD:  if(uIn.equals("Y")){
        if(uIn.nextLine().contains("Y"){ //NEW, works.
            isFull = true;
        }else{
            isFull = false;
        }
    }
    System.out.println("Full Affiliate: " + isFull);
    System.out.println("Generating Affiliate Reference:");
    Generate.randomGen = minNum + (int) (Math.random() * ((maxNum - minNum) +1));
    Generate.randomLast = minNum + (int) (Math.random() * ((maxLast - minNum) +1));

    if(isFull){
        System.out.println("GB" + randomGen + "?" + randomLast + "*");
    }else{
        System.out.println("GB" + randomGen + "?" + randomLast);
    }
}

public static void main(String[] args){
    Generate theNumber = new Generate();
}
}

我非常擅长在Minecraft和Bukkit之外使用Java,所以我认为这是我刚刚错过的一些相对简单的东西。

1 个答案:

答案 0 :(得分:0)

由于您正在使用键盘阅读,因此您应该使用uIn.nextLine()而不是uIn.hasNextLine()

刚刚看到你的编辑...我会彻底摆脱外部的if函数,只需使用内部的if / else函数。