我在这里是新手,但是我很难弄清楚如何编写代码来确定单词的输入,并查看第一个单词是否与单词的结尾匹配。您可以输入abba并得到答案,它是均匀对称的,而aba是奇数对称的。
请告诉我如何:(
仅两件事。
首先 我想知道它是奇数还是偶数(字母数除以2,如果以0.5结尾,则是奇数对称的,如果是整数则是均数对称的。
第二, 我想获取单词中字母的位置(即1 = n,2 = n-1,3 = n-2 …),作为执行的主要思想。奇数对称的单词,忽略最后剩下的字母。
我感谢任何先发制人或想法:)谢谢!
感谢KDiTraglia,我编写了代码并进行了编译,这就是我的意思。我再也没有了。
报告的问题:
线程“主”中的异常java.lang.Error:未解决的编译问题:反向无法解决或不是字段反向无法解决或不是字段语法错误,插入“)语句”以完成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 }
}}
您可以使用模运算符来确定单词的字母数是偶数还是奇数(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语法。