Программирование Java для определения симметричного слова

Я новичок здесь, но мне трудно понять, как написать код для определения ввода слова и посмотреть, совпадает ли первое с концом слова. Вы можете ввести abba и получить ответ, он равномерно симметричен, а aba странно симметричен.

Пожалуйста, покажи мне, как:(

Просто две основные вещи.

Во-первых, я хочу знать, странное или равномерное количество букв (число букв, деленное на 2, если оно заканчивается на 0,5, оно странно симметрично, если целое число, то оно равномерно симметрично.

во-вторых, я хочу получить (т. е. 1=n,2=n-1,3=n-2...) положение буквы в слове, чтобы быть главной идеей исполнения. Если в странно симметричное слово, игнорируйте последнюю оставшуюся букву.

Я ценю любой старт или идею:) Спасибо!

Спасибо KDiTraglia, я сделал код и скомпилировал, и вот что я поставил. Я не получаю дальше.

Заявленная проблема:

Исключение в потоке "main" java.lang.Error: Неразрешенные проблемы компиляции: обратное не может быть разрешено или не является обратным полем, не может быть разрешено или не является синтаксической ошибкой поля, вставьте ") Statement" для завершения IfStatement

Это то, что я получил, помощь KDiTraglia

public class WordSymmetric {
public static void main(String[] args) {
 String word = "abccdccba";


if ( (word.length() % 2) == 1 ) {
    System.out.println("They are oddly symmetric");
    //odd
}
else {
    System.out.println("They are evenly symmetric");
    //even
}

int halfLength = word.length() / 2;
String firstHalf = word.substring(0, halfLength);
String secondHalf = word.substring(halfLength, word.length());

System.out.println(secondHalf.reverse());

if (firstHalf.equals(secondHalf.reverse()) {
    System.out.println("They match");
    //they match
} 

} }

1 ответ

Решение

Вы можете использовать оператор по модулю, чтобы определить, имеет ли слово четное или нечетное количество букв (% в Java)

if ( (word.length % 2) == 1 ) {
    //odd
}
else {
    //even
}

затем просто разделите строку пополам и сравните обратную сторону конца с передней

int halfLength = word.length / 2;
String firstHalf = word.substring(0, halfLength);
String secondHalf = word.substring(halfLength, word.length);
if (firstHalf.equals(secondHalf.reverse()) {
    //they match
}

что-то вроде этого должно работать, я просто написал это очень быстро, возможно, потребуется внести несколько изменений, чтобы соответствовать синтаксису Java.

Другие вопросы по тегам