Я создаю что-то, что нужно использовать исключительно личное, чтобы генерировать случайный «код», когда это необходимо, и использовать утилиту Scanner для подтверждения, генерируется ли код для определенного типа пользователя, но независимо от того, что я набираю, логическое isFull возвращает false.Java boolean всегда возвращает 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();
}
}
Я довольно новыми для использования Java вне Minecraft и Bukkit, так что я думаю, что это что-то относительно просто, что я просто пропустил.
Повторно посмотрите, что вы сравниваете строку '' Y "' с? –
Ой, я просто понял. Я изменил uIn.equals («Y») на uIn.nextLine(). Содержит («Y»), и он отлично работает. Спасибо, что указали это. – Ubuntuu
Я думаю, что лучше всего оставить свой код * неправильным *, я могу ошибаться, но, похоже, лучше не менять код. Возможно, @RohitJain даст ответ. – ChiefTwoPencils