Я пишу программу, проверяющую, являются ли n слов анаграммами изначально данного слова. Если слово является анаграммой, выводится «да», если нет - выводится «нет». Это решает проблему правильно, если я ввожу все данные вручную в консоль. Если я скопирую и вставлю данные, он не «увидит» последнюю строку, пока я снова не нажму Enter. Поэтому я вставляю следующий ввод:
anagram
6
gramana
aaagrnm
anagra
margana
abc
xy
Итак, я получаю только 5 «да» и «нет», и когда я снова нажимаю Enter, я получаю последнее «нет».
вот мой код
import java.util.Scanner;
import java.util.Arrays;
public class WordAnagrams {
public static void anagramCheck (String x, String y) {
char[] initial= new char[x.length()];
for (int i=0; i<x.length(); i++) {
initial[i]=x.charAt(i);
}
Arrays.sort(initial);
char[] isAnagram = new char[y.length()];
for (int i=0; i<y.length(); i++) {
isAnagram[i]=y.charAt(i);
// System.out.println(isAnagram[i]);
}
Arrays.sort(isAnagram);
boolean same=Arrays.equals(initial, isAnagram);
if (same) {
System.out.println ("yes");
}
else {
System.out.println ("no");
}
// return answer;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
String word = input.nextLine();
int n = Integer.parseInt(input.nextLine());
String anagram=""; // input.nextLine();
// int counter=0;
System.out.println();
/* while (counter<n+1) {
anagram=input.nextLine();
anagramCheck(word, anagram);
// anagram=input.nextLine();
counter++;
}*/
for (int i=0; i<=n; i++) {
anagram=input.nextLine();
anagramCheck(word, anagram);
// anagram=input.nextLine();
// System.out.println(answers[i]);
}
System.out.println();
}
}