1. 문자열 str이 비어 있지 않다고 판단하는 방법은 다음과 같습니다.
1. str == null;
2. "".Equals (str);
3. str.length <= 0;
4. str.isempty ();
참고 : 길이는 컬렉션 클래스 객체가 소유 한 속성이며 컬렉션의 크기를 얻습니다.
예를 들면 : Array.length는 배열의 길이를 얻는 것입니다.
길이 ()는 일반적으로 문자열 클래스 객체에 문자열 길이를 얻습니다.
예를 들면 다음과 같습니다. String.length ();
설명 :
1. NULL 은이 문자열이 그 방법을 호출하면 NULL 포인터 예외가 나타나지 않음을 의미합니다.
2. ""는 길이 0의 문자열을 가리키며 현재 그 방법을 호출하는 것이 안전합니다.
3. Null은 물체가 아닙니다. "" "는 물체이므로 Null은 공간을 할당 한 공간이 없습니다."예를 들어 공간을 할당합니다.
문자열 str1 = null; str 참조가 비어 있습니다
문자열 str2 = ""; str는 빈 문자열을 나타냅니다
STR1은 아직 인스턴스화 된 물체가 아니며 STR2는 인스턴스화되었습니다.
물체는 평등과 비교되며 NULL은 동일한 부호와 비교됩니다.
STR1 = NULL; 다음이 잘못되었습니다.
if (str1.equals ( "") || str1 == null) {}
작성하는 올바른 방법은 (str1 == null || str1.equals ( "")) {// 문자열이 비어 있는지 판단 할 때 먼저 객체인지 판단합니다 빈 문자열입니다}
4. 그러므로 문자열이 비어 있는지 확인하려면 먼저 문자열이 null이 아닌지 확인한 다음 길이를 판단해야합니다.
문자열 str = xxx;
if (str! = null && str.length ()! = 0) {}
2. 다음은 Java가 문자열이 비어 있는지 여부를 결정하는 4 가지 방법입니다.
네 가지 방법의 효율은 다음과 같습니다.
심판 1 시간 : 625ms
심판 2 시간 : 125ms
심판 3 시간 : 234ms
심판 4 시간 : 109ms
코드 사본은 다음과 같습니다.
/**
* Intellij 아이디어로 만들어졌습니다.
* 사용자 : 관리자
* 날짜 : 14-1-16
* 시간 : 오전 10시 43 분
* 문자열이 비어 있는지 결정하는 효율성
*/
공개 클래스 판단식 이시적 인 {
public static void main (String [] args) {
judgestring1 ( "w_basketboy", 10000);
judgestring2 ( "w_basketboy", 10000);
judgestring3 ( "w_basketboy", 10000);
judgestring4 ( "w_basketboy", 10000);
}
/**
* 방법 1 : 대부분의 사람들이 사용하는 방법은 직관적이고 편리하지만 매우 비효율적입니다.
* 메소드 2 : 문자열 길이 비교가 가장 좋은 방법입니다.
* 방법 3 : Java SE 6.0이 제공하는 방법은 제공되기 시작했으며 효율성 및 방법 2는 거의 같지만 호환성의 이유로서 방법 2를 사용하는 것이 좋습니다.
* 방법 4 : 이것은 비교적 직관적이고 간단한 방법이며 효율도 매우 높으며 이는 방법 2 및 3의 효율과 유사합니다.
*/
public static void judgestring1 (String str, long num) {
long startTiem = system.currenttimeMillis ();
for (int i = 0; i <num; i ++) {
for (int j = 0; j <num; j ++) {
if (str == null || "".Equals (str)) {
}
}
}
Long Endtime = System.CurrentTimeMillis ();
System.out.println ( "function1 시간 소요 :" + (EndTime -StartTiem) + "MS");
}
public static void judgestring2 (String Str, Long Num) {
long startTiem = system.currenttimeMillis ();
for (int i = 0; i <num; i ++) {
for (int j = 0; j <num; j ++) {
if (str == null || str.length () <= 0) {
}
}
}
Long Endtime = System.CurrentTimeMillis ();
System.out.println ( "function4 시간 소모 :" + (EndTime -StartTiem) + "MS");
}
public static void judgestring3 (문자열 str, long num) {
long startTiem = system.currenttimeMillis ();
for (int i = 0; i <num; i ++) {
for (int j = 0; j <num; j ++) {
if (str == null || str.isempty ()) {
}
}
}
Long Endtime = System.CurrentTimeMillis ();
System.out.println ( "function3 시간 소모 :" + (EndTime -StartTiem) + "MS");
}
public static void judgestring4 (String str, long num) {
long startTiem = system.currenttimeMillis ();
for (int i = 0; i <num; i ++) {
for (int j = 0; j <num; j ++) {
if (str == null || str == "") {
}
}
}
Long Endtime = System.CurrentTimeMillis ();
System.out.println ( "function4 시간 소모 :" + (EndTime -StartTiem) + "MS");
}
}