내용의 문자열 비교 방법 :
당신은 == 비교를 사용하는 경우, 동일한 주소 가치 판단은,
그 소원이 문자열의 내용을 비교하는 경우, 당신은 구성원 간의 문자열 방법을 사용합니다 :
-
공공 부울 (개체 OBJ) : 문자열의 내용을 비교는 엄격한 대소 문자를 구분, 다른 객체 OBJ입니다.
객체는 모든 유형의 데이터를 수신 할 수있는 유형입니다. -
공공 부울 equalsIgnoreCase (문자열 STR) : 문자열 비교의 내용을 무시하는 경우
주의 사항 :
1. 문자열의 내용을 비교 == 비교를 사용하지 마십시오이 방법을 동일 사용해야하고 싶다.
2.equals a.equals 방법은 (b)와 같은 b.equals (a) 효과, 대칭성을 갖는다.
3. 팁 :이 방법을 동일에 두 개의 문자열을 비교하는 경우, 일정 사설하려고, 상수있다.
당신이 메서드를 호출 할 때 저장된 값 사이에 개체 이름이 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. 사용자 이름과 암호는 두 문자열을 가져, 키보드를 사용하여 입력해야합니다. (사용 스캐너)
성공적으로 로그인을 구성 무엇 3.? 올바른 사용자 이름과 비밀번호를 기입 사전에 등록 할 때
와 정확히 동일해야 올바른 사용자 이름과 암호는 사용자 이름과 비밀번호를 확인 4.
적절히 수 있어야 사용자 이름
B. 올바른 비밀번호가 있어야
A와 B가 "과"관계있는, 논리 연산자 &&
5. 로그인이 성공을 결정 : 경우
로그인이 성공하면 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("登陆失败,退出");
}
}
}
코드에서 당신은 단지 기능을 추가 한 세 가지 시도 중 착륙했다.
분석 : 세중 로직, 당신은,주기를 사용해야하는 동안 불확실성, for 루프와 횟수를 결정합니다.
잘못된 시간에 필요가 얼마나 많은 시간을 나머지 프롬프트 보여
, 그것은 환영 메시지를 표시 성공하는 경우, 시스템을 종료
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) + "次。请重试。");
}
}
}
}
}