怎么判断数组是否为空?怎么判断两个字符串不等?怎么判断两个字符串相等?

数组

首先来看这个案例:

String sz[]=new String[8];
	if(sz!=null){
		System.out.println("hahah1");
		
	}
	String szz[]=null;
	if(szz!=null){
		System.out.println("wwww");
		
	}

执行结果是:

hahah1

注意:

如果给定数组长度,那么这个数组里面即使没有值,也不为空;因为这个数组里面包含了8个元素,及时每个元素的值是null;

总结:

如果是初始化了的数组肯定不为空,即使它里面什么东西都没有,如果你想判断里面是否赋值了,用if(sz!=null){}肯定不对;

而是用sz[0].equals("")||sz[0]==null来进行判断;

如果仅仅是String [] sz=null;用if(sz!=null){}是可行的,

一般情况下,是不能先String [] sz=null;sz[0]="1";

会报错,空指针异常,因为你没有给元素分配地址;

字符串

字符串判断是否为空,一般都是if(str!=null&&"".equals(str)){}

但是如果判断两个字符串不相等?

那么就是

if(str1!=str2&&!(str1.equals(str2))){}

以上我都知道,可是我还是在栽跟头了,原因是,多个判断不等的条件:

案例:

查询数据库里number='0065'的最后一条记录,把即将插入编号'0065'的记录和上一条记录相比,如果第二列、第三列、第四列

第五列、第六列发生了变化,就执行插入操作;

也就是说,只要存在着以上某一列(最后一条记录和即将插入的记录)不相等的话,就执行插入操作;

我的相关代码如下:

if(!(szz[1].equals(szs[1]))||szs[5].equals("255")||(!(szs[2].equals("255"))
||!(szs[2].equals("0")))||(!(szs[3].equals("255"))||!(szs[3].equals("0")))){
			//满足以上条件之一才可以插入数据库中
			String sql1= "insert into sen(number,bs,xl,lpower,upower,alarm,data,time,state) values(?,?,?,?,?,?,?,?,?)";
	           Tools.update(sql1, szs);
		}

但是在实践过程中没有起到筛选的作用,也不知道哪里出了问题?

对于多个条件写在一起的,最好的办法,是把每个条件都配一个if

	if(szs[5].equals("255")){
		System.out.println("2");
	}
		if(!(szs[2].equals("255"))){
			System.out.println("3");
		}
		if(!(szs[2].equals("0"))){
			System.out.println("4");
		}
		if(!(szs[3].equals("255"))){
			System.out.println("5");
		}
		if(!(szs[3].equals("0"))){
			System.out.println("6");
		}

执行程序就可以看出哪里有问题;

找到问题以后修改自己的代码如下:

if(!(szz[1].equals(szs[1]))||szs[5].equals("255")||(!(szs[2].equals("255"))&&!(szs[2].equals("0")))||(!(szs[3].equals("255"))&&!(szs[3].equals("0")))){
			//满足以上条件之一才可以插入数据库中
			String sql1= "insert into sen(number,bs,xl,lpower,upower,alarm,data,time,state) values(?,?,?,?,?,?,?,?,?)";
	           Tools.update(sql1, szs);
		}

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_37591637

请给我持续更新的动力~~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值