Моя цель - распечатать данные координаты, если они находятся в допустимом формате. У меня есть вспомогательная функция isValid, чтобы проверить, является ли строка координатой или нет, и positionQuery запрашивает ввод данных пользователем, если isValid имеет значение false positionQuery выдает ошибку и снова запрашивает координаты, если это правда, она печатает координаты , Однако, что-то не так с моими логическими значениями или циклами, потому что я не получаю никакого вывода.
public static boolean validCoordinate(String coordinate, int dimension) {
String [] alphabet = new String[dimension];
for(int i = 0; i < dimension; i++) {
alphabet[i] = Character.toString((char)(65 + i));
}
List<String> list = Arrays.asList(alphabet);
int [] numbers = new int [dimension];
for(int i = 0; i < dimension; i++){
numbers[i] = 1 + i;
}
if(list.contains(Character.toString(coordinate.charAt(0)))) {
for(int j = 0; j < dimension; j++) {
if ((coordinate.substring(1)).contains(Integer.toString(numbers[j]))) {
return true;
}
}
}
return false;
}
public static String[] positionQuery(int dim, Scanner test_in) {
Scanner scanner = new Scanner(System.in);
System.out.println("Provide origin and destination coordinates.");
System.out.println("Enter two positions between A1-H8:");
while(true) {
String line = scanner.nextLine();
String[] coordinates = line.split(" ");
if(coordinates.length == 2) {
String origin = coordinates[0];
String dest = coordinates[1];
if(validCoordinate(origin, dim) && validCoordinate(dest,dim)) {
System.out.println(coordinates);
}
}
else {
System.out.println("ERROR: Please enter valid coordinate pair separated by space.");
}
}
}
Было бы удивительно, если бы я мог видеть, что я делаю не так:)