Programming java to determine a symmetrical word [closed]

孤街醉人 提交于 2019-12-04 07:15:45

问题


I am new here, but I am having hard time figuring out how to write a code to determine an input of word and see if the first is matching with the end of the word. You may input abba and get answer it's evenly symmetric and aba is oddly symmetric.

Please show me how:(

Just two main things.

first I want to know if it's oddly or evenly amount of letter(number of letter divided by 2,if it's ending with 0.5, it's oddly symmetric, if is an integer it's evenly symmetric.

second I want to get (i.e 1=n,2=n-1,3=n-2...) position of the letter in the word to be the main idea of the execution.If there is a last letter in the oddly symmetric word, ignore the last remaining letter.

I appreciate any headstart or idea:) Thanks!

Thanks KDiTraglia, I made the code and compiled and here is what I put. I am not getting any further.

Reported problem:

Exception in thread "main" java.lang.Error: Unresolved compilation problems: reverse cannot be resolved or is not a field reverse cannot be resolved or is not a field Syntax error, insert ") Statement" to complete IfStatement

This is what i got from, KDiTraglia's help

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:


You can use the modulo operator to determine whether the word has an even or odd number of letters (% in java)

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

then just split the string in half and compare the reverse of the end with the front

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
}

something like this should work, I just wrote it up real quick, might need to make a few changes to match java syntax.



来源:https://stackoverflow.com/questions/11130012/programming-java-to-determine-a-symmetrical-word

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!