자바 String 처리 입문 - null 또는 빈 값 의 판단 처리
3026 단어 java String
1. 잘못된 용법 1:
if (name == "") { //do something }
2, 오류 용법 2: if (name. equals (") {/ do something}
3, 오류 용법 3: if (! name. equals (") {/ do something}
상술 한 오류 용법 1 은 초보 자가 가장 쉽게 범 할 수 있 고 가장 쉽게 발견 되 지 않 는 오류 이다. 왜냐하면 그들의 문법 자 체 는 문제 가 없 기 때문에 자바 컴 파일 러 가 컴 파일 할 때 오 류 를 보고 하지 않 기 때문이다.그러나 이러한 조건 은 실행 할 때 프로그램 에 bug 가 나타 날 수 있 습 니 다. 영원히 true 가 되 지 않 습 니 다. 즉, if 블록 에 있 는 문 구 는 영원히 실행 되 지 않 습 니 다.
상술 한 용법 2, 용법 3 의 문법 은 많은 자바 숙련자 들 도 쉽게 범 할 수 있 는 실 수 를 포함 하 는데 왜 잘못된 것 입 니까?궁금 할 지도 몰라.네, 그들의 쓰기 자 체 는 틀 리 지 않 습 니 다. 그러나 null 판단 조건 이 하나 빠 졌 습 니 다. name = null 의 경우 어떤 결과 가 발생 할 지 생각해 보 세 요.결 과 는 프로그램 이 NullPointer Exception 이상 을 던 지고 시스템 이 걸 려 정상 적 인 서 비 스 를 제공 하지 않 는 다 는 것 입 니 다.물론 이전에 name 에 대해 null 판단 을 한 경 우 는 예외 입 니 다.
정확 한 쓰 기 는 name! =null 의 조건, 예 를 들 면:
if (name != null && !name.equals("")) { //do something }
혹은
if (! "" equals (name)) {/ "를 앞 에 쓰 면 name 이 null 이 든 아니 든 오류 가 발생 하지 않 습 니 다. / / do something}
다음은 간단 한 예 를 들 어 보 겠 습 니 다.
TestNullOrEmpty.java
public class Test {
public static void main (String args[]){
String value = null;
testNullOrEmpty(value);
value = "";
testNullOrEmpty(value);
value = " ";
testNullOrEmpty(value);
value = "hello me";
testNullOrEmpty(value);
}
static void testNullOrEmpty(String value){
if(value == null){
System.out.println("value is null");
} else if ("".equals(value)){
System.out.println("value is blank but not null");
} else {
System.out.println("value is \"" + value + "\"");
}
if (value == "") { //NG
//
}
}
}
컴 파일 실행: c: \ > javac TestNullOrEmpty. java
c:\>java TestNullOrEmpty value is null. value is blank but not null. value is " " value is "hello me!"
다음으로 이동:http://hi.baidu.com/lvzhnan/blog/item/fe8d55d8b62d962410df9b01.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
자바 String 처리 입문 - null 또는 빈 값 의 판단 처리왜냐하면 그들의 문법 자 체 는 문제 가 없 기 때문에 자바 컴 파일 러 가 컴 파일 할 때 오 류 를 보고 하지 않 기 때문이다.그러나 이러한 조건 은 실행 할 때 프로그램 에 bug 가 나타 날 수 있 습 니 다...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.