Корпус коммутатора не выводится на консоль? - PullRequest
0 голосов
/ 20 июня 2020
public static void startGame(){
    //int stone = 0, diamond = 0, iron = 0, gold = 0;
    StringBuffer blockys = new StringBuffer("\uD83E\uDDCD ▯▯▯▯▯▯▯▯▯");

    Scanner input = new Scanner(System.in);

   
    System.out.println("\uD83E\uDDCD " + "▯▯▯▯▯▯▯▯▯" + "\n");

    String user = input.next();
    boolean game = true;

    while(game) {
        switch (user) {
           //Code

            case "M":
                System.out.println(mine(blockys));
                user = input.next();
                break;

    }
}

public static StringBuffer mine(StringBuffer blockys){
    addOre(blockys);
    blockys.delete(2, 3);

    int randBlock = (int) (Math.random() * 101) + 0;

    //Code
   
    else{
        //add bomb 5% chance
        blockys.append("\uD83E\uDDE8");
    }


    return blockys;
}



public static void addOre(StringBuffer blockys){
    String str = blockys.substring(2, 3);

    switch(str){
        //Code

        case "\uD83E\uDDE8":
            System.out.println("You mined a bomb! BOOOOOOOM! You died!");
            System.exit(0);
            break;
    }
}

В моем методе addOre, когда он достигает case "\ uD83E \ uDDE8", он не выводит на консоль и не завершает программу. Когда дело доходит до дела, оно полностью игнорирует его и программа продолжается. Я попытался сделать это по умолчанию, но это не удалось, и пробовал разные переменные в случаях, но он никогда ничего не печатает. Как я могу исправить это, чтобы он печатался и завершал работу после?

1 Ответ

0 голосов
/ 20 июня 2020

Это проблема «длины».

Рассмотрим следующий код:

public static void main(String[] args) {
    System.out.println("Hello".substring(2, 3).length());
    System.out.println("\uD83E\uDDE8".length());
}

Будет выведено:

1
2
Так в чем проблема?

Когда вы используете подстроку, вы всегда будете возвращать строку длиной 1.

На другом конце, в вашем случае переключения, вы пытаетесь проверить строку длиной 2 .

1! = 2: условие не выполнено

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...