자바 의 String 값 이 빈 문자열 과 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 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부 탁 드 리 겠 습 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.