-5

我是新来的,但是我很难弄清楚如何编写代码来确定单词的输入并查看第一个是否与单词的结尾匹配。您可以输入 abba 并得到答案,它是均匀对称的,而 aba 是奇怪对称的。

请告诉我如何:(

主要有两点。

首先 我想知道它是奇数还是偶数的字母(字母数除以2,如果它以0.5结尾,它是奇怪对称的,如果是一个整数它是均匀对称的。

第二个 我想得到(即1=n,2=n-1,3=n-2...)字母在单词中的位置作为执行的主要思想。如果在最后一个字母奇怪的对称词,忽略最后一个字母。

我感谢任何先机或想法:)谢谢!

感谢 KDiTraglia,我编写了代码并编译了,这就是我放的。我没有更进一步。

报告的问题:

线程“main” java.lang.Error 中的异常:未解决的编译问题:reverse 无法解析或不是字段 reverse 无法解析或不是字段 语法错误,插入“)语句”完成 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
} 

} }

4

1 回答 1

0

您可以使用模运算符来确定单词是否具有偶数或奇数个字母(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 语法。

于 2012-06-21T00:32:30.250 回答