コンテンツの文字列の比較方法:
あなたが==比較を使用している場合、それは同じアドレス値判定であり、
その願いは、文字列の内容を比較する場合は、メンバー間の文字列メソッドを使用する必要があります。
-
パブリックブール(オブジェクトobj):文字列の内容を比較することは、厳密な大文字と小文字を区別し、別のオブジェクトobjです。
オブジェクトは、任意のタイプのデータを受け取ることができるタイプです。 -
パブリックブールequalsIgnoreCase(String str)文字:文字列比較の内容、ケースを無視して
注意事項:
1.は、文字列の内容を比較==比較を使用していない、equalsメソッドを使用することを確認したいです。
2.equals方法はa.equals(b)およびb.equals(a)の効果として、対称性を有します。
3.ヒント:equalsメソッドで2つの文字列が比較される場合には、一定のEDITORIALにしようと、定数があります。
あなたがメソッドを呼び出すときに格納された値の間でオブジェクト名がnullの場合、それはNULLポインタ例外どうなる
のjava.lang.NullPointerExceptionを
4.直接書き込み、二重引用符文字列オブジェクトなので、二重引用符で少し直接的な方法を呼び出すことができます
public class Demo01StringEquals {
public static void main(String[] args) {
char[] array = { 'a', 'b', 'c' };
String str1 = new String(array);
String str2 = "abc";
System.out.println(str1 == str2); // false
// 进行字符串内容比较。用equals方法
// 拿着str1跟str2进行内容比较
boolean same = str1.equals(str2);
System.out.println(same); // true
System.out.println(str2.equals(str1)); // true
// 跟任意常量比较,推荐常量在前
String str3 = null;
System.out.println("abc".equals(str3)); // false,推荐
// System.out.println(str3.equals("abc")); //错误写法,空指针异常
String str4 = "Hello";
String str5 = "hello";
System.out.println(str4.equals(str5)); //false
System.out.println("Hello".equalsIgnoreCase(str5));//true
System.out.println(str4.equalsIgnoreCase(str5)); //true
}
}
イコールと使用の間で文字列の二つの方法が簡単なログインシーンをシミュレートするために、equalsIgnoreCase。
分析:
1.ログインユーザー名とパスワードが必要である二つの情報、2つの文字列。
2.ユーザー名とパスワードは、キーボードを使って入力する必要があり、2つの文字列を取得します。(使用スキャナ)
ログイン成功を構成するもの3.?正しいユーザー名とパスワードを書かれた、事前に登録する際に
正しいユーザー名とパスワードを使用して、ユーザー名とパスワードがまったく同じでなければならないかを決定4.
ユーザー名適切でなければなりません
B.正しいパスワードでなければなら
AとBは、「と」関係しています論理演算子&&
5.ログインが成功したかを決定IF:
ログインに成功すると6は、ログインに失敗した場合は、システムを終了するにはウェルカムメッセージを表示します
public class Demo02Login {
public static void main(String[] args) {
// 注册用户名和密码
String registname = "admin";
String registpassword = "123456";
// 键盘输入两个字符串
Scanner sc = new Scanner(System.in);
System.out.println("输入用户名:");
String inputname = sc.next();
System.out.println("请输入密码:");
String inputpassword = sc.next();
// 判断条件
// A.输入的用户名和注册时候的正确用户名必须一样(用户名不区分大小写)
// equalsIgnoreCase
// B.输入的密码和注册时候密码判断用:equals
if (inputname.equalsIgnoreCase(registname) && inputpassword.equals(registpassword)) {
System.out.println("欢迎登陆");
} else {
System.out.println("登陆失败,退出");
}
}
}
コードであなただけの機能を追加した3回再試行の間で着弾しました。
分析:三連ロジック、あなたは不確実性の中で、サイクルを使用するためのループで回数を決定する必要があります。
間違った時点で必要な、何回残りのプロンプトを示して
成功すれば、それはウェルカムメッセージを表示し、システムを終了
public class Demo03LoginRetry {
public static void main(String[] args) {
// 注册用户名和密码
String registname = "admin";
String registpassword = "123456";
// 键盘输入两个字符串
Scanner sc = new Scanner(System.in);
for (int i = 1; i <= 3; i++) {
System.out.println("输入用户名:");
String inputname = sc.next();
System.out.println("请输入密码:");
String inputpassword = sc.next();
if (inputname.equalsIgnoreCase(registname) && inputpassword.equals(registpassword)) {
System.out.println("欢迎登陆");
break; // 成功,不再循环,应该退出循环
} else {
if (i == 3) {//如果是最后一次
System.out.println("次数用尽。系统退出。");
break;
}else {//如果不是最后一次
System.out.println("登陆失败,剩余次数:" + (3 - i) + "次。请重试。");
}
}
}
}
}