자바 의 String 값 이 빈 문자열 과 null 인 판단 방법 을 자세히 설명 합 니 다.

자바 빈 문자열 과 null 의 차이
1.유형
null 은 문자열 이 아 닌 대상 의 값 을 표시 합 니 다.예 를 들 어 대상 의 인용,String a=null 을 설명 합 니 다.
''는 빈 문자열 을 나타 낸다.즉,길이 가 0 이라는 것 이다.예 를 들 어 문자열 String s="을 설명 합 니 다.
2.메모리 할당
String a=null;문자열 대상 을 설명 하 는 인용 을 표시 하지만 null 로 가리 키 고 있 습 니 다.즉,메모리 공간 을 가리 키 지 않 았 습 니 다.
String s=”“;문자열 형식 을 설명 하 는 인용 을 표시 합 니 다.값 은'빈 문자열'입 니 다.이 s 인용 은 빈 문자열 의 메모리 공간 을 가리 키 고 있 습 니 다.
자바 에서 변수 와 인용 변 수 는 스 택 에 존재 합 니 다(stack).대상(new 에서 발생 하 는)은 모두 더미 에 놓 여 있 습 니 다(hep).
다음 과 같다.

String str =new String(“abc”);
ps:=왼쪽 은 스 택 에 저 장 됩 니 다(stack).=오른쪽 은 더미 에 저 장 됩 니 다(heap).
코드 예제 1:

String str1=null;
        String str2="";

        //str1==null   true
            System.out.println("str1 null ==     :"+(str1==null));


        //java.lang.NullPointerException         
            System.out.println("str1 isEmpty()  "+(str1.isEmpty()));

            //java.lang.NullPointerException         
            System.out.println("str2 length()  "+(str1.length()));

        //java.lang.NullPointerException         
            System.out.println("str1 null equals     :"+(str1.equals(null)));


        //str2==null   false
            System.out.println("str2 null ==     :"+(str2==null));


        //str2==""       true
            System.out.println("str2 "+""+" ==     :"+(str2==""));

        //str2.isEmpty()     true
            System.out.println("str2 isEmpty()  "+str2.isEmpty());


        //str2.equals(null)      true
        System.out.println("str2 null equals       :"+(str2.equals(null)));

        //str2.isEmpty()     true
        System.out.println("str2 isEmpty()  "+(str2.isEmpty()));

        //str2.length()        0
        System.out.println("str2 length()  "+(str2.length()));

코드 예제 2:

String str1 = new String() ;
        String str2 = null ;
        String str3 = "" ;
        System.out.println(str1==str2);                //       ,  false
        System.out.println(str1.equals(str2));         //    ,  false
        System.out.println(str2==str3);                //       ,  false
        System.out.println(str3.equals(str2));         //    ,  false
        System.out.println(str1==str3);                //       ,  false
        System.out.println(str1.equals(str3));         //    ,  true
 이상 의 두 코드 예 시 를 통 해 다음 과 같은 결론 을 얻 을 수 있다.
       1   방법 을 호출 하려 면 먼저 대상 이 있어 야 합 니 다.그러나 null 은 대상 이 아 닙 니 다.메모리 에 공간 이 없 기 때문에 null 은 String 의 방법 을 호출 할 수 없습니다.isEmpty 와 length,equals 방법 은 호출 할 수 없습니다.
       2   문자열 대상 은 null 의 값 과 같 지 않 고 메모리 주소 도 같 지 않 습 니 다.
       3   빈 문자열 대상 은 null 의 값 과 같 지 않 고 메모리 주소 도 같 지 않 습 니 다.
       4   new String()문자열 대상 을 만 드 는 기본 값 은"(String 형식 구성원 변수의 초기 값 은 null 입 니 다.
자바 판단 문자열 은 모두 비어 있 는 방법 입 니 다.
방법
       가장 많은 사람들 이 사용 하 는 방법 은 직관 적 이 고 편리 하지만 효율 이 낮다.

if(s == null || s.equals(“”));
방법
       문자열 의 길 이 를 비교 하고 효율 이 높 은 것 이 내 가 아 는 가장 좋 은 방법 이다.

if(s == null || s.length() == 0);
방법
       자바 SE 6.0 에서 야 제공 하 는 방법,효율 과 방법 두 가 지 는 거의 같 지만 호환성 을 고려 하여 사용 방법 두 가 지 를 추천 합 니 다.

if(s == null || s.isEmpty());
방법
       이것 은 비교적 직관 적 이 고 간편 한 방법 이 며 효율 도 매우 높 으 며 방법 2,3 의 효율 과 차이 가 많 지 않다.

if (s == null || s == “”);
주의:s==null 은 필요 합 니 다.
String 형식 이 null 이면 equals(String)나 length()등 을 하면 자바.lang.NullPointer Exception 을 던 집 니 다.
또한 s==null 의 순 서 는 앞 에 있어 야 합 니 다.그렇지 않 으 면 자바.lang.NullPointer Exception 을 던 집 니 다.
다음 자바 코드 와 같이:

String s = null ;
        if(s.equals("") || s == null)
        {
            System.out.println("success");
        }
실행 결 과 는 다음 과 같 습 니 다.thread"main"java.lang.NullPointerException 을 제외 합 니 다.빈 포인터 이상 을 알려 줍 니 다.
자바 에 있 는 String 값 이 빈 문자열 과 null 인 판단 방법 에 대한 자세 한 설명 은 여기까지 입 니 다.더 많은 자바 String 빈 문자열 과 null 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부 탁 드 리 겠 습 니 다!

좋은 웹페이지 즐겨찾기