javaの簡単な回文アルゴリズム

アルゴリズムが必要です

文字列があるかどうかを判断するためのプログラム書く「回文を。」パリンドローム配列:文字列は、バック(中心対称)から後方に前方一致します。

アルゴリズムの考え方

まず、2つのアリコートの周りの文字列は、左右対称の文字がそれぞれの比較のために同じです続きます

コードの実装

import java.util.Scanner;

public class Palindrome {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (!sc.hasNext("###")) {
            String data = sc.next();
            if (isPalin(data)) {
                System.out.println("yes");
            } else {
                System.out.println("no");
            }
        }
        sc.close();
    }

    public static boolean isPalin(String data) {
        int len = data.length();
        for (int i = 0; i < len/2; i++) {
            if (data.charAt(i) != data.charAt(len-1-i)) {
                return false;
            }
        }
        return true;
    }

}

テストケース

abc
no
qwq
yes
abcdcba
yes

ヒント

1、==等しく、

==演算子の実行規則

  • 変数の基本データ型は、その値は以上であれば
  • それは、参照型の変数であるならば、彼らはアドレスを指すオブジェクトを比較

メソッドの実行規則に等しいです

  • これは、元のメソッド、オブジェクトのアドレス比較参照型変数ポイントに等しいです
  • equalsメソッドに基づいなどの文字列、日付は、この時点で書き直されたオブジェクトの内容を指さ比較

PS:同じオブジェクトか否か、すなわち、2つのオブジェクト参照が等しいかどうかを比較するために、この方法は、基本クラスのオブジェクトのメソッドであると等しいです

お問い合わせ:Javaで話すに等しいと== https://www.cnblogs.com/dolphin0520/p/3592500.html

2、sc.hasNext()入力の複数のセットを実装します

!sc.hasNext("###")  // 匹配 ### 返回true,然后取非运算。即以 ### 作为停止输入的命令

hasNext()と実際には次の()の効果は、システムが次の入力文字を待ちます、同じですが、異なる値を返す、のhasNext()は()、真次返すの文字が入っ返します。次のパラメータは、文字やパラメータの値が一致するときのhasNextは(trueを返す)場合。

お問い合わせ:のhasNextスキャナの()メソッドhttps://blog.csdn.net/gao_zhennan/article/details/80562548

おすすめ

転載: www.cnblogs.com/lanselove/p/10974550.html
おすすめ