アルゴリズムが必要です
文字列があるかどうかを判断するためのプログラム書く「回文を。」パリンドローム配列:文字列は、バック(中心対称)から後方に前方一致します。
アルゴリズムの考え方
まず、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