문자열 비교 방법 JAVA 내용

내용의 문자열 비교 방법 :

당신은 == 비교를 사용하는 경우, 동일한 주소 가치 판단은,
그 소원이 문자열의 내용을 비교하는 경우, 당신은 구성원 간의 문자열 방법을 사용합니다 :

  • 공공 부울 (개체 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) + "次。请重试。");
				}
			}
		}

	}
}
게시 52 개 원래 기사 · 원 찬양 6 ·은 10000 +를 볼

추천

출처blog.csdn.net/qq_43472877/article/details/104103650