Программирование 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.