java 判斷字符串是否爲空,是否爲數字

以下是java 判斷字符串是否爲空的四種方法:

方法一: 最多人使用的一個方法, 直觀, 方便, 但效率很低:

                                    if(s == null ||"".equals(s));
方法二: 比較字符串長度, 效率高, 是我知道的最好一個方法:

                      if(s == null || s.length() <= 0);
方法三: Java SE 6.0 纔開始提供的方法, 效率和方法二幾乎相等, 但出於兼容性考慮, 推薦使用方法二.

                     if(s == null || s.isEmpty());

方法四: 這是一種比較直觀,簡便的方法,而且效率也非常的高,與方法二、三的效率差不多:

                     if (s == null || s == "");

 

注意:s == null 是有必要存在的.

  如果 String 類型爲null, 而去進行 equals(String) 或 length() 等操作會拋出java.lang.NullPointerException.

  並且s==null 的順序必須出現在前面,不然同樣會拋出java.lang.NullPointerException.

  如下Java代碼:

  String str = null;

  if(str.equals("") || str= == null){//會拋出異常

            System.out.println("success");

  }

  // "".equals(str);後置確保不會遇null報錯。


一下是判斷字符串是否爲數字的方法:

1.用JAVA自帶的函數
public static boolean isNumeric(String str){
  for (int i = 0; i < str.length(); i++){
   System.out.println(str.charAt(i));
   if (!Character.isDigit(str.charAt(i))){
    return false;
   }
  }
  return true;
 }

2.用正則表達式
首先要import java.util.regex.Pattern 和 java.util.regex.Matcher
public boolean isNumeric(String str){ 
   Pattern pattern = Pattern.compile("[0-9]*"); 
   Matcher isNum = pattern.matcher(str);
   if( !isNum.matches() ){
       return false; 
   } 
   return true; 
}

3.使用org.apache.commons.lang
org.apache.commons.lang.StringUtils;
boolean isNunicodeDigits=StringUtils.isNumeric("aaa123456789");
http://jakarta.apache.org/commons/lang/api-release/index.html下面的解釋:
isNumeric
public static boolean isNumeric(String str)Checks if the String contains only unicode digits. A decimal point is not a unicode digit and returns false.
null will return false. An empty String ("") will return true.
 StringUtils.isNumeric(null)   = false
 StringUtils.isNumeric("")     = true
 StringUtils.isNumeric("  ")   = false
 StringUtils.isNumeric("123")  = true
 StringUtils.isNumeric("12 3") = false
 StringUtils.isNumeric("ab2c") = false
 StringUtils.isNumeric("12-3") = false
 StringUtils.isNumeric("12.3") = false
 
Parameters:
str - the String to check, may be null 
Returns:
true if only contains digits, and is non-null
 
上面三種方式中,第二種方式比較靈活。
 
第一、三種方式只能校驗不含負號“-”的數字,即輸入一個負數-199,輸出結果將是false;
 
而第二方式則可以通過修改正則表達式實現校驗負數,將正則表達式修改爲“^-?[0-9]+”即可,修改爲“-?[0-9]+.?[0-9]+”即可匹配所有數字。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章