java斷定字符串String能否為空成績淺析。本站提示廣大學習愛好者:(java斷定字符串String能否為空成績淺析)文章只能為提供參考,不一定能成為您想要的結果。以下是java斷定字符串String能否為空成績淺析正文
1、斷定一個字符串str不為空的辦法有:
1、str == null;
2、"".equals(str);
3、str.length <= 0;
4、str.isEmpty();
留意:length是屬性,普通聚集類對象具有的屬性,獲得聚集的年夜小。
例如:數組.length就是獲得數組的長度。
length()是辦法,普通字符串類對象有該辦法,也是獲得字符串長度。
例如:字符串.length();
解釋:
1、null表現這個字符串不指向任何的器械,假如這時候候你挪用它的辦法,那末就會湧現空指針異常。
2、""表現它指向一個長度為0的字符串,這時候候挪用它的辦法是平安的。
3.、null不是對象,""是對象,所以null沒有分派空間,""分派了空間,例如:
String str1 = null; str援用為空
String str2 = ""; str援用一個空串
str1還不是一個實例化的對象,而str2曾經實例化。
對象用equals比擬,null用等號比擬。
假如str1=null;上面的寫法毛病:
if(str1.equals("")||str1==null){ }
准確的寫法是 if(str1==null||str1.equals("")){ //所以在斷定字符串能否為空時,先斷定是否是對象,假如是,再斷定是否是空字符串 }
4. 所以,斷定一個字符串能否為空,起首就要確保他不是null,然後再斷定他的長度。
String str = xxx;
if(str != null && str.length() != 0) { }
2、以下是java 斷定字符串能否為空的四種辦法:
四種辦法履行的效力分離以下:
JudgeString1耗時:625ms
JudgeString2耗時:125ms
JudgeString3耗時:234ms
JudgeString4耗時:109ms
/**
* Created with IntelliJ IDEA.
* User: Administrator
* Date: 14-1-16
* Time: 上午10:43
* 斷定字符串能否為空的效力成績
*/
public class JudgeStringIsEmptyOrNot {
public static void main(String[] args) {
JudgeString1("w_basketboy", 10000);
JudgeString2("w_basketboy", 10000);
JudgeString3("w_basketboy", 10000);
JudgeString4("w_basketboy", 10000);
}
/**
* 辦法一: 最多人應用的一個辦法, 直不雅, 便利, 但效力很低;
* 辦法二: 比擬字符串長度, 效力高, 是最好的一個辦法;
* 辦法三: Java SE 6.0 才開端供給的辦法, 效力和辦法二簡直相等, 但出於兼容性斟酌, 推舉應用辦法二;
* 辦法四: 這是一種比擬直不雅,輕便的辦法,並且效力也異常的高,與辦法2、三的效力差不多;
*/
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(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.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");
}
}