Java - просто перерыв с Key - PullRequest
1 голос
/ 14 марта 2019

Во-первых, я прошу прощения за мою грамматику и т. Д., Потому что английский не является моим основным языком, и я должен сказать вам, это не так давно, так как я начал программировать.

Моя главная проблема - это цикл while, который вы можете увидеть там. Если я запускаю это в eclipse, он говорит: «введите что-то», у меня возникает проблема: я набираю то, что хочу ... затем нажимаю Enter, и я могу напечатать что-нибудь еще. Но это должно пробиться через петлю. Я надеюсь, что вы можете сказать мне простой способ добавить это "если клавиша нажата" -> прорваться.

Большое спасибо С уважением Кануббель

import java.util.Arrays;
import java.util.Scanner;

public class Anagramm {

    void erzeugen(String eingabe) {
        char[] test = new char[eingabe.length()];

        for (int i = 0; i < eingabe.length(); i++) {
            test[i] = eingabe.charAt(i);
        }
    }

    public static void main(String[] args) {

        String wort1 = "test";
        String wort2 = "test";

        System.out.println("Geben Sie hier Ihr erstes Wort ein:");
        Scanner erstbegriff = new Scanner(System.in);

        while (erstbegriff.hasNext()) {
            wort1 += erstbegriff.next();
        }

        System.out.println("Geben Sie hier Ihr zweites Wort ein:");
        Scanner zweitbegriff = new Scanner(System.in);
        wort2 = zweitbegriff.toString();

        erstbegriff.close();
        zweitbegriff.close();

        String erstesWort = wort1.replace(" ", "");
        String zweitesWort = wort2.replace(" ", "");

        char[] wortEins = erstesWort.toCharArray();
        char[] wortZwei = zweitesWort.toCharArray();

        Arrays.sort(wortEins);
        Arrays.sort(wortZwei);

        if (Arrays.equals(wortEins, wortZwei)) {
            System.out.println("Es handelt sich um ein Anagramm.");
        } else {
            System.out.println("Es handelt sich um kein Anagramm.");
        }
    }

}

Ответы [ 3 ]

0 голосов
/ 14 марта 2019

Проблема в

while (erstbegriff.hasNext()) {
            wort1 += erstbegriff.next();
}

Если вы просто хотите прочитать в одной строке ввода, вы можете использовать

erstbegriff.nextLine() вместо

0 голосов
/ 14 марта 2019

Вы не должны использовать цикл while.Сканер уже ждет ввода.Это должно работать:

public static void main(String[] args) {

    String wort1 = "test";
    String wort2 = "test";

    System.out.println("Geben Sie hier Ihr erstes Wort ein:");
    Scanner erstbegriff = new Scanner(System.in);

    if (erstbegriff.hasNext()) {
        wort1 += erstbegriff.next();
    }

    System.out.println("Geben Sie hier Ihr zweites Wort ein:");
    if (erstbegriff.hasNext()) {
        wort2 += erstbegriff.next();
    }

    erstbegriff.close();

    String erstesWort = wort1.replace(" ", "");
    String zweitesWort = wort2.replace(" ", "");

    char[] wortEins = erstesWort.toCharArray();
    char[] wortZwei = zweitesWort.toCharArray();

    Arrays.sort(wortEins);
    Arrays.sort(wortZwei);

    if (Arrays.equals(wortEins, wortZwei)) {
        System.out.println("Es handelt sich um ein Anagramm.");
    } else {
        System.out.println("Es handelt sich um kein Anagramm.");
    }
}
0 голосов
/ 14 марта 2019

просто добавьте оператор break в цикл while, например:

 while (erstbegriff.hasNext()) {
        wort1 += erstbegriff.next();
        break;
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...