1. java:创建了一个int变量的话,如何判断该变量是否为空呢
int a; //默认是 0
方法一:
StringUtil.isEmpty(String.valueOf(a));//此处a必须初始化 总是返回为false 你懂版得
方法二:权
Pattern p = Pattern .compile("^-?\\d+$");
Matcher m = p.macther(a+"");
m.matches() // 总是 返回true 你懂得
2. java中如何给字符串数组中为空的部分赋值
||if(a[i] == null ||"".equals(a[i]));
这是最简单直观的方法了,不过效率比较低。
效率高点的:
if(a[i] == null |版| a[i].length() <= 0);
Java SE 6.0 开始提供权的方法:
if(a[i] == null || a[i].isEmpty());
Java两个字符串相比较才需要equals(),判断是否为null直接用==就行
3. java中 如何给int数组赋值赋一个空值
在java中int数组不能赋值为空,只能为0.
如果想达到类似的效果, 请将int数组转换为Integer数组。
Integer可以为空, 但int 不能为空
4. java对象为空的判断
/**
*判断对象或对象数组中每一个对象是否为空:对象为null,字符序列长度为0,集合类、Map为empty
*
*@paramobj
*@return
*/
(Objectobj){
if(obj==null)
returntrue;
if(objinstanceofCharSequence)
return((CharSequence)obj).length()==0;
if(objinstanceofCollection)
return((Collection)obj).isEmpty();
if(objinstanceofMap)
return((Map)obj).isEmpty();
if(objinstanceofObject[]){
Object[]object=(Object[])obj;
if(object.length==0){
returntrue;
}
booleanempty=true;
for(inti=0;i<object.length;i++){
if(!isNullOrEmpty(object[i])){
empty=false;
break;
}
}
returnempty;
}
returnfalse;
}
应用场景:
读取excel文件,转化为一个二维数组:Object[][]arrays
但是excel中有空行,所以需要过滤Object[][]arrays中的空的一维数组:
Java代码
/***
*过滤数组中的空元素
*
*
*@paramarrays
*@return
*/
publicstaticObject[][]filterEmpty(Object[][]arrays){
intsumNotNull=0;
/***
*统计非空元素的总个数
*/
for(inti=0;i<arrays.length;i++){
Objectobject=arrays[i];
if(!ValueWidget.isNullOrEmpty(object)
&&!SystemUtil.isNullOrEmpty((Object[])object)){//判断元素是否为空
sumNotNull=sumNotNull+1;
}
}
Object[][]filtedObjs=newObject[sumNotNull][];
intindex=0;
for(inti=0;i<arrays.length;i++){
Object[]object_tmp=arrays[i];
if(!ValueWidget.isNullOrEmpty(object_tmp)
&&!SystemUtil.isNullOrEmpty((Object[])object_tmp)){//判断元素是否为空
filtedObjs[index++]=object_tmp;
}
}
returnfiltedObjs;
}
判断对象的所有成员变量是否为空
Java代码
/***
*Determinewhethertheobject'sfieldsareempty
*
*@paramobj
*@paramisExcludeZero:true:数值类型的值为0,则当做为空;----false:数值类型的值为0,则不为空
*
*@return
*@throwsSecurityException
*@
*@throwsNoSuchFieldException
*@throwsIllegalAccessException
*/
(Objectobj,booleanisExcludeZero)
throwsSecurityException,IllegalArgumentException,
NoSuchFieldException,IllegalAccessException{
if(ValueWidget.isNullOrEmpty(obj)){//对象本身就为null
returntrue;
}
List<Field>fieldList=ReflectHWUtils.getAllFieldList(obj.getClass());
booleanisNull=true;
for(inti=0;i<fieldList.size();i++){
Fieldf=fieldList.get(i);
ObjectpropertyValue=null;
try{
propertyValue=getObjectValue(obj,f);
}catch(NoSuchFieldExceptione){
e.printStackTrace();
}
if(!ValueWidget.isNullOrEmpty(propertyValue)){//字段不为空
if(){//是数字
if(!((Integer)propertyValue==0&&isExcludeZero)){
isNull=false;
break;
}
}elseif(propertyValueinstanceofDouble){//是数字
if(!((Double)propertyValue==0&&isExcludeZero)){
isNull=false;
break;
}
}elseif(propertyValueinstanceofFloat){//是数字
if(!((Float)propertyValue==0&&isExcludeZero)){
isNull=false;
break;
}
}elseif(propertyValueinstanceofShort){//是数字
if(!((Short)propertyValue==0&&isExcludeZero)){
isNull=false;
break;
}
}else{
isNull=false;
break;
}
}
}
returnisNull;
}
测试:
Java代码
@Test
publicvoidtest_isNullObject()throwsSecurityException,
IllegalArgumentException,NoSuchFieldException,
IllegalAccessException{
Person2p=newPerson2();
Assert.assertEquals(true,ReflectHWUtils.isNullObject(p,true));
Assert.assertEquals(false,ReflectHWUtils.isNullObject(p,false));
p.setAddress("beijing");
Assert.assertEquals(false,ReflectHWUtils.isNullObject(p,true));
Assert.assertEquals(false,ReflectHWUtils.isNullObject(p,false));
p.setAddress(null);
p.setId(0);
Assert.assertEquals(true,ReflectHWUtils.isNullObject(p,true));
Assert.assertEquals(false,ReflectHWUtils.isNullObject(p,false));
}
Person2源代码(省略getter,setter方法):
Java代码
importjava.sql.Timestamp;
publicclassPerson2{
privateintid;
privateintage;
privatedoubleweight;
privateStringpersonName;
privateTimestampbirthdate;
publicStringidentitify;
protectedStringaddress;
Stringphone;
}
5. java判断int是否为空
int point;String val=point +""; 而是一个中间变量, int point= GiftInfo.getPoints(); 在数据库表中有属性字段名称points,类型为int。
如果我们没有向这个表中插数据,这时候point就是空值,而不是默认的0 问题补充:Aubergine_kang 写道给你讲一下啊: java中的类型有基本类型:int long double等,判断的为0(int)或者0.0(doublefloat) 对象类型:包括基本类型的包装类,Integer(int) Double Float 不给赋值的时候就为null了 还有一个特殊的String,本身是对象类型也是基本类型。
可以为“” 或者 null都是它为空的时候如果基本数据类型的变量作为中间变量,默认值就没了,而传入的参数为 NULL 或“”的时候不好判断啊。 问题补充:JamesZhao1987 写道int point= GiftInfo.getPoints();
对于上面的这句话,如果point是int类型,则得到的结果是不可能是null的。 如果插入一条数据时没有插入给字段,而数据库里默认是null的值的话,你可以使用 Integer point= GiftInfo.getPoints();(GiftInfo.getPoints要返回Integer类型) 然后判断point是否等于null来判断数据库是否插入数据了。
6. java怎么判断int是否为空
先把int类型的复数据转换成制String类型,然后判断String类型的数据是否为空。
示例代码:
int point;
String val=point +"";if("".equals(val)){// do something...}
PS:int point不是对象,int类型为空时默认为0。