-5

私はここにいるのは初めてですが、単語の入力を決定し、最初の単語が単語の末尾と一致しているかどうかを確認するコードの書き方を理解するのに苦労しています。abba を入力すると、均等対称で aba が奇数対称であるという回答が得られます。

方法を教えてください:(

主なものは2つだけです。

最初 に、文字の量が奇数か偶数かを知りたい (文字数を 2 で割った値、0.5 で終わる場合は奇数対称、整数の場合は偶数対称)。

2番目 に、実行の主なアイデアとなる単語内の文字の位置(つまり、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
} 

} }

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 に答える